iOS 核心数据 - Segmentation Fault 11

Posted

技术标签:

【中文标题】iOS 核心数据 - Segmentation Fault 11【英文标题】:iOS core data - Segmentation Fault 11 【发布时间】:2012-10-11 04:48:26 【问题描述】:

我正在尝试分配布尔类型属性的值。当我尝试这样做时,我最终会出现此错误

作业似乎已崩溃:分段错误: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];

我有三个属性 name 、 email 和 mailed。当我尝试更改实体的邮寄属性时,它会抛出上述错误。 Mailed 是布尔类型。其他属性是在更新时会发生变化的字符串。

【问题讨论】:

如何在 coredata 模型类中声明 mailed?是 NSNumber 的 Bool 类型吗? 【参考方案1】:

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

NSNumber *aNumber = [NSNumber numberWithBool:mailed];

BOOL mailed = [aNumber boolValue];

【讨论】:

所以在 .xcdatamodel 文件中它仍然是布尔值? 那么当我存储时,我应该将它存储为 NSNumber 还是 Bool?对不起,只是想清楚谢谢 在您的 .xcdatamodel 中,您需要将其保存为布尔值。在您的 coredata 模型类 SalesPerson 中,您需要将此属性保存为 NSNumber。

以上是关于iOS 核心数据 - Segmentation Fault 11的主要内容,如果未能解决你的问题,请参考以下文章

Linux:段错误(核心已转储) Segmentation fault (core dumped)(在Linux上如何得到一个段错误的核心转储)(笔记)(未完成,暂停)

图像分割模型——segmentation_models_pytorch和albumentations 组合实现多类别分割

论文阅读 | A Curriculum Domain Adaptation Approach to the Semantic Segmentation of Urban Scenes

Segmentation fault(Core Dump)

Java核心类库-IO-随机访问文件(RandomAccessFile)

iOS:在 fetchrequest 中仅获取核心数据中的简单信息