从我的应用中保存少量数据时,最好使用NSUserDefaults
还是NSCoding
?
现在我使用NSCoding
(encodeWithCoder / initWithCoder等),但似乎NSUserDefaults
可能更简单。
我的总数据是关于各种Ints / Strings / MutableArray,总共只有几十个。
答案 0 :(得分:6)
我假设NSCoding
表示“在使用NSCoding
API序列化文件后将对象保存到文件”。虽然这两种方法对原始数据类型都有效,但是一旦开始序列化具有复杂结构的对象,NSUserDefaults
方法就会变得更加困难。
相比之下,将NSCoding
类的数据保存到文件中可以在对象结构方面提供高度的灵活性。如果您知道将来不需要这种灵活性,请使用NSUserDefaults
;如果您不确定,请留下文件。
答案 1 :(得分:0)
我更喜欢使用以编程方式创建的plist文件
NSString *appFile;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
appFile = [documentsDirectory stringByAppendingPathComponent:@"myFile"];
//this creates the file path
NSDictionary* tempDict = [[NSDictionary alloc]initWithContentsOfFile:appFile];
//this gets the data from storage
[tempDict writeToFile:appFile atomically:YES];
//this updates the data to storage