core-data – 错误: – [UIImage _deleteExternalReferenceFromPermanentLocation]无法识别的选择器发送到实例

当我删除包含图像的托管对象时,在外部记录中存储为可转换值,然后我崩溃并出现此错误
Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '-[UIImage _deleteExternalReferenceFromPermanentLocation]: unrecognized selector sent to instance 0xde49360'

解决方法

我在 Apple Developer forums回答了类似的事情.
我猜你在数据建模器中的那个字段上选择了外部存储复选框.

一个bug可以解决.我是这样做的:
一旦更新了数据并保存了上下文,任何删除它的尝试都会引发这个“无法识别的选择器”异常.
要强制可以响应_deleteExternalReferenceFromPermanentLocation消息的正确对象,请执行以下操作:

[[self managedobjectContext] refreshObject:myobject mergeChanges:NO];

该物体变成了一个故障.当您下次访问它或删除它时,外部数据将按预期删除,因为包装外部数据的正确对象将从存储中提取并正确响应_deleteExternalReferenceFromPermanentLocation.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...