Iphone 为什么';我的NSUserDefaults实现是否可以在iOS 4下工作?

Iphone 为什么';我的NSUserDefaults实现是否可以在iOS 4下工作?,iphone,ios4,Iphone,Ios4,我已经阅读并观看了许多关于iPhone OS/iOS SDK中的NSUserDefaults的教程,但我似乎无法让自己的实现正常工作 现在,我正在构建一个简单的计数应用程序,希望在应用程序加载时加载上次计数的数字。然而,NSUserDefaults有不同的想法。有人知道为什么我的首选项加载方法在NSLog中不断返回(null) 提前感谢!:) CounterViewController.m(节略) counterpdelegate.m - (void)applicationWillTermina

我已经阅读并观看了许多关于iPhone OS/iOS SDK中的
NSUserDefaults
的教程,但我似乎无法让自己的实现正常工作

现在,我正在构建一个简单的计数应用程序,希望在应用程序加载时加载上次计数的数字。然而,
NSUserDefaults
有不同的想法。有人知道为什么我的首选项加载方法在
NSLog
中不断返回
(null)

提前感谢!:)

CounterViewController.m(节略)

counterpdelegate.m

- (void)applicationWillTerminate:(UIApplication *)application {
    /*
     Called when the application is about to terminate.
     See also applicationDidEnterBackground:.
     */
    [CountrViewController writeCount];
}
(因为我将只从一个键中检索一个值,所以我决定不对该方法进行任何输入。)


如果这是任何令人困惑的方式,请让我知道!我很乐意提供澄清。

首先,您不需要在读取默认值之前调用
-synchronize
,只有在写入默认值之后。
您的
NSLog
实际上可能是罪魁祸首,请尝试
%d
而不是
%@
%@
用于打印对象,如
NSString
NSNumber
int
是一种基本类型。

作为补充说明,synchronize会定期自动调用,它非常可靠,我从未调用过它,但为了保存,我会在应用程序终止之前调用它一次。
- (void)applicationWillTerminate:(UIApplication *)application {
    /*
     Called when the application is about to terminate.
     See also applicationDidEnterBackground:.
     */
    [CountrViewController writeCount];
}