存储300条记录iPhone

时间:2011-06-14 07:24:45

标签: iphone objective-c ios cocoa-touch

我正在阅读一个包含大约300个数组记录的JSON提要。每条记录都是一个包含大约8个条目的对象。启动后在字典中存储很多东西吗?

如果是这样,我是否应该在每次请求数据时在线阅读Feed中的数据?

3 个答案:

答案 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个数组记录不是太大的数据。但是在实时馈送的情况下,每次请求数据时都应该始终读取数据。