Objective c iOS核心数据-分段故障11

Objective c iOS核心数据-分段故障11,objective-c,ios,core-data,segmentation-fault,nsmanagedobjectcontext,Objective C,Ios,Core Data,Segmentation Fault,Nsmanagedobjectcontext,我正在尝试为布尔类型的属性赋值。当我试着这样做时,我最终犯了这个错误 作业似乎已崩溃:分段错误:11 代码如下: NSMutableArray *emails = [[NSMutableArray alloc] init]; NSError *error = nil; //This is your NSManagedObject subclass SalesPerson * client = nil; NSFetchRequest * request = [[NSFetchRequest

我正在尝试为布尔类型的属性赋值。当我试着这样做时,我最终犯了这个错误

作业似乎已崩溃:分段错误:11

代码如下:

NSMutableArray *emails = [[NSMutableArray alloc] init];

NSError *error = nil;

//This is your NSManagedObject subclass
SalesPerson * client = nil;

NSFetchRequest * request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"SalesPerson" inManagedObjectContext:self.managedObjectContext]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", query];

[request setPredicate:predicate];
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];

client = [results objectAtIndex:0];

client.mailed = TRUE;

NSLog(@"client email %@",client.email);

[emails addObject:client.email];

我有三个属性名称、电子邮件和邮件。当我试图更改实体的属性mailed时,它会抛出上述错误。Mailed属于布尔类型。其他属性是字符串,在更新时会发生更改。

不确定这是否是您正在寻找的解决方案。检查您的coredata模型类,确保
mailed
声明为
NSNumber
,而不是
BOOL
。因此,无论何时存储或读取,都需要从一个转换到另一个

NSNumber *aNumber = [NSNumber numberWithBool:mailed];

BOOL mailed = [aNumber boolValue];

如何在coredata模型类中声明mailed?它是NSNumber的Bool类型吗?那么在.xcdatamodel文件中它仍然是布尔型的吗?那么当我存储它时,我应该将它存储为NSNumber还是Bool?抱歉,我只是想澄清一下。在.xcdatamodel中,您需要将其保存为布尔值。在coredata模型类SalesPerson中,需要将此属性另存为NSNumber。