与NSUserDefault相关的问题

时间:2010-06-28 10:14:11

标签: iphone

我已经设定了,

这是我在applicationwillterminate方法中的下面代码。

NSString *string4 = @"Objective-C";

NSUserDefaults* defs7 = [NSUserDefaults standardUserDefaults];
[defs7 setObject:string4 forKey:@"subject_textfield"];

这是我在applicationdidfinishlaunching方法中的下面代码。

NSUserDefaults* defs7 = [NSUserDefaults standardUserDefaults];
subject_textfield.text = [defs7 stringForKey:@"subject_textfield"];

但是,当我按回家然后我再次启动应用程序 那时我得到了subject_textfield.text的零值。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

applicationwillterminate可能无法在iOS4中调用。如果您使用的是iOS4,请查看以下活动:

didFinishLaunchingWithOptions
applicationWillResignActive

applicationWillEnterForeground
applicationDidBecomeActive

答案 1 :(得分:0)

使用[[NSUserDefaults standardUserDefaults] synchronize];强制保存NSUserDefaults。

参考:

  

因为这种方法是自动的   定期调用,使用   这种方法只有你不能等待   用于自动同步(for   例如,如果您的应用程序是关于   退出)或者如果你想更新   用户默认为磁盘上的内容   虽然你没有做任何改变。

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html#//apple_ref/doc/uid/20000318-CIHDDEGI