iphone - NSUserDefaults 写入磁盘?

标签 iphone objective-c cocoa-touch

我正在将当前选定的 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/

相关文章:

objective-c - NSNotification 发送一次,但被多次接收

iphone - 如何控制使用 AVMutableComposition 组装的视频的方向

iphone - Apple iTunes 附属计划 - 歌曲链接元数据?

iphone - 移除对 armv7s 架构的支持是否仍然适用于 iPhone 5 屏幕?

ios - 无法从 Facebook 帐户工具包获取短信代码

iphone - 未找到 -L 之后的目录 'X'

ios - ApplicationIconBadgeNumber 没有在重新安装我的 ipad 应用程序时重置。

iphone - 禁用方向更改旋转动画

iphone - UISearchBar 和 NSMutableArray 的问题

ios - 转到另一个 Viewcontroller