我正在阅读一个包含大约300个数组记录的JSON提要。每条记录都是一个包含大约8个条目的对象。启动后在字典中存储很多东西吗?
如果是这样,我是否应该在每次请求数据时在线阅读Feed中的数据?
答案 0 :(得分:3)
如果它不经常更改,您可以将其缓存到Core Data存储中,并更新不同,删除或新添加的单个记录,而不是在启动时重新创建存储。
即使它经常发生变化,使用CD的另一个好处是,您可以快速查询Core Data存储中的特定记录,而不是(可能)遍历每条记录。
答案 1 :(得分:2)
使用较少量代码的方法是将字典存储在plist中并自己查询数据。 iPhone可以在没有延迟的情况下处理内存中的300个对象,所以除非必须,否则我不会为此烦恼。何时刷新Feed取决于您的应用程序逻辑。
NSString *path = [[NSBundle mainBundle] pathForResource:@"feed" ofType:@"plist"];
[dict writeToFile:path atomically:YES]; // write
[dict dictionaryWithContentsOfFile:path]; // read
[dict enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){ //iterate
NSLog(@"%@",[NSString stringWithFormat:@"%@=%@", key, obj]);
}];
要获得更多性能,请使用二进制plist。如果您必须进行复杂查询,请使用NSPredicate
或核心数据。
答案 2 :(得分:-1)
是的,每次请求数据时,您都应该只在线阅读Feed中的数据。虽然300个数组记录不是太大的数据。但是在实时馈送的情况下,每次请求数据时都应该始终读取数据。