我注意到NSUserDefaults的保存需要一段时间。
如何检查是否已完成保存?
例如我做:
NSMutableArray *uld = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"testdata"]];
[uld addObject:teststring];
[[NSUserDefaults standardUserDefaults] setObject:uld forKey:@"testdata"];
答案 0 :(得分:2)
您通常不必担心NSUserDefaults
它会在有时间时存储更改,如果您需要确保已将更改写入磁盘调用- (BOOL) synchronise
,它将返回{ {1}}如果默认值已正确写入光盘。
请参阅Apple的NSUserDefaults reference page
答案 1 :(得分:1)
通常,同步过程是异步的,通常人们不关心何时将其保存到文件系统中。但是如果你想控制你可以打电话syncrhonize method同步调用它。
问题是,NSUserDefaults会将您的数据保存到内存中,然后在一段时间内,它会保存到文件系统中。但是,您始终处理接口级别,因此内存或文件系统中的数据没有任何区别