一 模擬器緩存路徑
NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:file]; if (ret) { YS_DBG(@"模擬器上-----TACityModel模型數據歸檔成功"); }else{ YS_DBG(@"模擬器上-----TACityModel模型數據歸檔失敗"); }
二 真機緩存路徑
NSString *Path = NSHomeDirectory(); //注意,在真機歸檔時,請在拼接路徑時加上Documents/,指定寫入到Documents文件夾下,不然提示歸檔失敗 NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:totalPath]; if (ret) { YS_DBG(@"真機上-----TACityModel模型數據歸檔成功"); }else{ YS_DBG(@"真機上-----TACityModel模型數據歸檔失敗"); }
#if TARGET_IPHONE_SIMULATOR #elif TARGET_OS_IPHONE #endif
#pragma mark - 根據指定的key,歸檔指定的模型數組 + (void)archiveOTAContryModelArray:(NSMutableArray *)modelArray key:(NSString *)key { #if TARGET_IPHONE_SIMULATOR NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:file]; if (ret) { YS_DBG(@"模擬器上-----TACityModel模型數據歸檔成功"); }else{ YS_DBG(@"模擬器上-----TACityModel模型數據歸檔失敗"); } #elif TARGET_OS_IPHONE NSString *Path = NSHomeDirectory(); //注意,在真機歸檔時,請在拼接路徑時加上Documents/,指定寫入到Documents文件夾下,不然提示歸檔失敗 NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:totalPath]; if (ret) { YS_DBG(@"真機上-----TACityModel模型數據歸檔成功"); }else{ YS_DBG(@"真機上-----TACityModel模型數據歸檔失敗"); } #endif }
截圖以下數據庫
#pragma mark - 根據指定的key,解歸檔指定的模型數組 + (NSMutableArray *)unArchiveOTAContryModelArrayWithkey:(NSString *)key { #if TARGET_IPHONE_SIMULATOR NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:file]; return array; #elif TARGET_OS_IPHONE NSString *Path = NSHomeDirectory(); //注意,在真機歸檔時,請在拼接路徑時加上Documents/,指定寫入到Documents文件夾下,不然提示歸檔失敗 NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:totalPath]; return array; #endif }
截圖以下數組
#pragma mark - 根據指定的key,刪除指定的模型數組 + (void)deleteOTAContryModelArrayWithkey:(NSString *)key { #if TARGET_IPHONE_SIMULATOR NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; [MessageUtil_ deleteFileWithPath:file]; #elif TARGET_OS_IPHONE NSString *Path = NSHomeDirectory(); //注意,在真機歸檔時,請在拼接路徑時加上Documents/,指定寫入到Documents文件夾下,不然提示歸檔失敗(模擬器上路徑前面不須要Documents/,真機纔要) NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]]; [MessageUtil_ deleteFileWithPath:totalPath]; #endif }
截圖以下緩存