-方法一:NSUserDefaults
用途
一般將輕量級的使用者偏好儲存在這裡,比如使用者名稱,遊戲最高得分等。
儲存路徑
儲存路徑為dataContainer下的Library/Perferance
檔案格式
.plist
使用方法
[[NSUserDefaults standardUserDefaults] setBool:isRemember forKey:@"remember"]; // 存
_rememberSwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"remember"]; // 取
複製程式碼
可以儲存的內容格式有:
NSString NSData NSDate NSArray NSDictionary NSNumber (可以將bool,integer,float,double封裝成NSNumber)
-方法二:將陣列,字典儲存到指定路徑,並儲存為.plist檔案
用途
將自定義的陣列,字典儲存為.plist檔案
儲存路徑
指定的任意路徑
檔案格式
.plist
使用方法
// 存
NSArray *array = @[@"amao", @"agou"];
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"array.plist"];
[array writeToFile:path atomically:YES];
// 取
NSArray *array = [NSArray arrayWithContentsOfFile:path atomically:YES];
複製程式碼
-方法三:物件歸檔
用途
將自定義的Model類轉換成特定的資料流,儲存到本地(自定義物件以及物件的所有屬性需要遵循NSCoding)
儲存路徑
指定的任意路徑 ####檔案格式 我通常會以.archive作為字尾 ####使用方法
自定義物件類需要實現以下兩個方法:
- encodeWithCoder: // 物件轉換成特定資料流
- initWithCoder: // 將檔案轉換成特定的物件
複製程式碼
儲存方法:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:儲存model的陣列];
[data writeToFile:filePath atomically:YES];
複製程式碼
取方法:
id object = [NSKeyedUnarchiver unarchiverObjectWithFile:filePath];
if ([object isKindOfClass:[NSArray class]]) {
[model陣列 addObjectsFromArray:object];
}
複製程式碼
上面提到的三種方法的缺點是,無論多小的改動,都是整存整取。
##方法四:SQLite