【发布时间】:2011-04-12 02:02:50
【问题描述】:
我从服务器加载了 XML 数据(包括图像、文本……)并将该数据显示在 iphone 屏幕上。
当我其他时间访问该屏幕时,如何缓存数据以重新加载该屏幕。它会更快。 (不需要重新加载 XML 数据)?
谢谢。
【问题讨论】:
标签: iphone objective-c caching nscache
我从服务器加载了 XML 数据(包括图像、文本……)并将该数据显示在 iphone 屏幕上。
当我其他时间访问该屏幕时,如何缓存数据以重新加载该屏幕。它会更快。 (不需要重新加载 XML 数据)?
谢谢。
【问题讨论】:
标签: iphone objective-c caching nscache
从服务器下载数据后,您可以将 XML 文件本身存储到文档文件夹(或某些子文件夹)中。 如果您已将 XML 文件解析为数组和字典,则可以将数据转换为 plist 文件并将其存储在您的 iPhone 上。 看看 NSData 方法:
- (BOOL) writeToFile: (NSString*)path atomically: (BOOL)useAuxiliaryFile;
【讨论】:
使用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 的使用情况。
【讨论】: