當試圖保存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