2011-05-12 27 views
0

我想弄清楚如何緩存我想在uitableview中使用的漫畫標題列表,並且大致每週都會更新一次,所以不必每次從Web服務器啓動應用程序時都要加載列表我想堅持一個緩存..唯一的問題是我發現很難遇到像這樣的緩存列表的文檔。如何緩存從服務器下載的xml列表?

任何示例代碼或建議,將不勝感激:)

回答

2
  1. 您獲取XML
  2. 您使用的NSXMLParser
  3. 您序列化和存儲字典其解析到一個NSDictionary中。

@implementation NSDictionary(BinaryPlist) 
- (BOOL)writeToBinaryFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile { 
    NSString *errorString = nil; 
    NSData *data = [NSPropertyListSerialization dataFromPropertyList:self format:NSPropertyListBinaryFormat_v1_0 
                errorDescription:&errorString]; 
    if (errorString) { 
     return NO; 
    } 

    return [data writeToFile:path atomically:useAuxiliaryFile]; 
} 
@end 
  1. 然後你可以定義你應該考慮如何長期緩存新鮮,或者,發出HTTP HEAD請求,並檢查Last-Modified頭。

- (BOOL)cacheValid:(NSString*)path { 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSError *error = nil; 
    NSDictionary *attrs = [fileManager attributesOfItemAtPath:path error:&error]; 
    if (!error) { 
     NSDate *modDate = [attrs fileModificationDate]; 
     NSTimeInterval delta = - [modDate timeIntervalSinceNow]; 
     if (delta < kCacheTTL) { 
      return YES; 
     } 
    } 
    return NO; 
} 
+0

謝謝一堆!將立即着手它。 – tinhead 2011-05-12 22:24:03

相關問題