ios – 非零整数值的核心数据EXC_BAD_ACCESS
发布时间:2020-12-14 17:42:24 所属栏目:百科 来源:网络整理
导读:我有两个具有int64_t属性的核心数据模型.当我尝试为整数字段分配非零值时,其中一个工作正常而另一个抛出EXC_BAD_ACCESS.我已经阅读了重新创建NSManagedObject子类的答案,但我没有成功.破碎的类看起来像这样: @interface NoteObject : NSManagedObject@prope
我有两个具有int64_t属性的核心数据模型.当我尝试为整数字段分配非零值时,其中一个工作正常而另一个抛出EXC_BAD_ACCESS.我已经阅读了重新创建NSManagedObject子类的答案,但我没有成功.破碎的类看起来像这样:
@interface NoteObject : NSManagedObject @property (nonatomic) int64_t remoteID; @property (nonatomic) int64_t remoteArticleID; @property (strong,nonatomic) ArticleObject *article; @property (strong,nonatomic) NSString *status; @property (strong,nonatomic) NSString *token; @property (strong,nonatomic) NSString *title; @property (strong,nonatomic) NSString *noteContent; @property (strong,nonatomic) NSDate *pubDate; @property (strong,nonatomic) NSDate *modDate; @end @implementation NoteObject @dynamic remoteID; @dynamic remoteArticleID; @dynamic article; @dynamic status; @dynamic token; @dynamic title; @dynamic noteContent; @dynamic pubDate; @dynamic modDate; @end 违规行在此块中: _noteObject = [NSEntityDescription insertNewObjectForEntityForName:@"Note" inManagedObjectContext:self.managedObjectContext]; _noteObject.remoteArticleID = 0; // this works _noteObject.remoteArticleID = 1; // this crashes 真正令我难过的是,在另一个模型中,我有相同类型的相同字段,并且它们将毫无困难地接受非零值: bookmarkObject = [NSEntityDescription insertNewObjectForEntityForName:@"Bookmark" inManagedObjectContext:self.managedObjectContext]; bookmarkObject.remoteArticleID = 0; // this works bookmarkObject.remoteArticleID = 1; // this works,too 我的.xcdatamodeld文件中是否有任何可能导致此问题的内容? 编辑 我的数据模型如下所示: 解决方法
我有完全相同的问题.
当您手动编辑NSManagedObject中的属性时,xcode(或者可能是编译器,或者它们之间的两个)有时会混淆 – 它最终会将整数视为指针并尝试直接访问内存 – 因此EXC_BAD_ACCESS. 无论如何,正如这个问题所解释的:SO Question,解决方案是删除你的旧类(显然复制出任何自定义代码,以便稍后再粘贴),然后让xcode为你重新生成它(在数据模型中选择实体)并选择“编辑/创建NSManagedObject子类…”).在出现的对话框中,确保勾选“使用基本数据类型的标量属性”. 您可能必须手动编辑结果类以将一些非标量属性转换回对象(我有一个日期对象,它变成了除NSDate以外的东西 – 我完全忘记了什么,但它接受了手动编辑回NSDate). 它对我有用.希望对你有效. 阿里 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |