use*_*672 13 core-data nsdictionary iphonecoredatarecipes ios
请我尝试获取核心数据方面的一些知识.到目前为止,我已经掌握了创建实体以及添加,检索和删除此实体的值的问题.
我的问题如下.NSDictionary使用核心数据时,在实体中存储属性的可能方法是什么?
fun*_*rry 31
你应该使用"Transformable Attributes":
*.xcdatamodeld文件NSManagedObject子类文件(File-> New-> File ... NSManagedObjectsubclass)*.h文件并将属性" info "的类型从id更改为NSMutableDictionary*其他一切都自动运作
有关详细信息,请参阅:https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html
有几种方法可以解决这个问题:
一个.创建一个代表NSDictionary的实体,以便每个字典键由实体属性表示.
湾 如果您不喜欢创建单独实体的上述方法,则仍可以将NSDictionary存储到NSData类型的单个Core Data字段中,前提是您首先将NSDictionary序列化为NSData.
//NSDictionary to NSData
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:dictionary forKey:@"Some Key Value"];
[archiver finishEncoding];
// data is now ready to use
Run Code Online (Sandbox Code Playgroud)
然后,当您从Core Data读取NSData时,您还需要将NSData转换回NSDictionary.
// NSData to NSDictionary
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *dictionary = [[unarchiver decodeObjectForKey:@"Some Key Value"] retain];
[unarchiver finishDecoding];
// dictionary is now ready to use
Run Code Online (Sandbox Code Playgroud)
C.最后,您可以使用持久性框架,例如Sensible TableView,其中自动获取,显示和保存所有数据结构.我自己省了很多代码.
| 归档时间: |
|
| 查看次数: |
13747 次 |
| 最近记录: |