当试图保存TRUE值转换为包含Boolean
属性的管理对象时,我得到一个错误EXC_BAC_ACCESS
错误EXC_BAC_ACCESS。保存核心数据布尔字段
id delegate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = [delegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"TrafficCameraInfo"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"code=%@",self.selectedTrafficCamera.code]];
NSError *error;
TrafficCameraInfo *cgTrafficCamera;
cgTrafficCamera = [[self.managedObjectContext executeFetchRequest:fetchRequest error:&error] lastObject];
NSString *alertMessage;
if (cgTrafficCamera.favourite == NO){
cgTrafficCamera.name = @"TEST"; <-- works ok
cgTrafficCamera.favourite = 1; <-- causes an error
} else {
cgTrafficCamera.favourite = 0;
}
error = nil;
if (![self.managedObjectContext save:&error]) {
管理对象接口看起来是这样的:
@interface TrafficCameraInfo : NSManagedObject
@property (nonatomic, retain) NSString *code;
@property (nonatomic, retain) NSString *postCode;
@property (nonatomic, retain) NSNumber *latitude;
@property (nonatomic, retain) NSNumber *longitude;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *url;
@property (nonatomic) Boolean favourite;
@end
其他地方在我的应用我被路过1以更新另一个布尔字段,我不遇到问题。
任何想法是什么导致错误?
非常感谢回复的设置数据。它似乎工作正常,但要确认它,我需要检查数据库中已更新的值。我会用'if(cgTrafficCamera.favourite == [NSNumber numberWithInt:0])或者if(cgTrafficCamera.favourite == [NSNumber numberWithBool:YES])替换'if(cgTrafficCamera.favourite == NO)''其他? – cullener 2013-04-25 10:18:21
更新:'(cgTrafficCamera.favourite == [NSNumber numberWithInt:0])'工作正常。感谢您的帮助 – cullener 2013-04-25 13:25:07
不客气。乐意效劳。 – Wienke 2013-04-25 14:36:21