我正在将当前选定的 UITabBar 的索引写入 [NSUserDefaults standardUserDefaults]
但我遇到了索引未写入磁盘的奇怪情况。我正在使用
// TO WRITE
NSNumber *selectedTab = [NSNumber numberWithInt:[tabBarController selectedIndex]];
[[NSUserDefaults standardUserDefaults] setObject:selectedTab forKey:@"selectedTab"];
和...
// TO READ
NSNumber *selectTab = [[NSUserDefaults standardUserDefaults] objectForKey:@"selectedTab"];
NSLog(@"SelectTab: %@", selectTab);
[tabController setSelectedIndex:[selectTab intValue]];
谁能告诉我 setObject:forKey:
是否实际写入磁盘,或者我是否需要使用类似 synchronize
的东西强制写入?
最佳答案
您需要调用 synchronize
,尽管它确实会定期自动调用(至少根据文档)。调用它的好时机是在应用委托(delegate)的 applicationWillEnterBackground:
和 applicationWillTerminate:
中。
关于iphone - NSUserDefaults 写入磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316057/