我遇到类似于link text
的问题我正在使用XCode 3.2.4(1708)。重新安装后,我开始从我的NSUserDefaults对象中获取Nil。
如果我在写:
- (void)viewDidLoad {
NSUserDefaults *sUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *myAdd = [standardUserDefaults objectForKey:kMyIPaddress];
}
我在myAdd变量中得到Nil,但如果我喜欢这样:
- (void)viewDidLoad {
NSUserDefaults *sUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:@"192.168.1.2" forKey:kMyIPaddress];
NSString *myAdd = [standardUserDefaults objectForKey:kMyIPaddress];
}
我在myAdd对象中得到192.168.1.2。因此看起来UserDefaults在我给它们添加内容之前保持空白,但它们存在于“常规首选项”中并包含正确的值。为什么我在放东西之前无法访问它们?
答案 0 :(得分:1)
你做过
吗?[[NSUserDefaults standardUserDefaults] synchronize];
将NSString放在那里之后?
答案 1 :(得分:1)
您需要使用NSUserDefaults注册默认值。
NSDictionary *def = [NSDictionary dictionaryWithObjectsAndKeys:
@"192.168.1.2", kMyIPaddress,
nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:def];
每次应用启动时都需要这样做
Settings.app中有设置(我对General Preferences
的解释)并不重要。如果这些值未手动更改,则它们不会存储在NSUserDefaults中。