如何在ios中缓存数据

时间:2010-09-14 09:42:12

标签: iphone objective-c caching nscache

我从服务器加载了XML数据(包括图像,文本......),并在iPhone屏幕上显示该数据。

当我在其他时间访问该屏幕时,如何缓存数据以重新加载该屏幕。它会更快。 (不需要再次重新加载XML数据)?

谢谢。

2 个答案:

答案 0 :(得分:3)

使用EGOcache API。 只需导入类中的EGOCache.h文件

- (void)setObject:(id<NSCoding>)anObject forKey:(NSString*)key;
-(void)setObject:(id)anObject forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;
-(id)objectForKey:(NSString*)key;

使用第一种方法使用forkey设置数据。 如果要隐藏缓存时间,请使用第二种方法。

编辑

EGOCache将永久保存您的数据,请参阅here以了解NSCache的使用情况,其中包含各种自动删除政策。

答案 1 :(得分:0)

从服务器下载数据后,您可以将XML文件本身存储到文档文件夹(或某些子文件夹)。 如果您已将XML文件解析为数组和字典,则可以将数据转换为plist文件并将其存储在iphone本身上。 看看NSData方法:

- (BOOL) writeToFile: (NSString*)path  atomically: (BOOL)useAuxiliaryFile;