use*_*500 5 iphone core-data ios
我需要序列化我的NSURL.
object是NSManagedObject的类型.
NSURL *objectURIRepresentation = [[object objectID] URIRepresentation];
NSError *error = nil;
NSData *objectIDData = [NSData dataWithContentsOfURL:objectURIRepresentation options:NSDataReadingMapped error:&error];
Run Code Online (Sandbox Code Playgroud)
我得到错误:(可可错误256.).有任何想法吗?有些东西告诉我,使用dataWithContentsOfURL:不是好主意.
更新
还有一个问题被错误地作为评论:
[NSData dataWithContentsOfURL:uri];和之间有什么区别[NSKeyedArchiver archivedDataWithRootObject:uri];?
谢谢.
首先,您的代码不会尝试序列化 NSURL 对象,而是尝试根据作为托管对象的 URI 返回的 URL 处的数据创建数据对象。
其次,这永远不会起作用。
[NSData dataWithContentsOfURL:]将尝试读取特定 URL 处的文件。托管对象的 URI 表示与许多其他对象一起存储在持久文件(如 SQLite 数据库)内的对象。
URI 只允许托管对象上下文识别其自己存储中的特定对象。除了上下文之外,URI 对于其他任何内容来说都是乱码。
NSManagedObject 不实现 NSCoder 协议,因此托管对象无法序列化。我不确定你想在这里做什么,但你不能这样做。
| 归档时间: |
|
| 查看次数: |
10182 次 |
| 最近记录: |