1

我有一个 UISwitch,除其他外,女巫禁用了 UITextfield。使用 NSUserDefaults 时,我管理开关以记住其当前状态(开/关)

 [[NSUserDefaults standardUserDefaults]
     setBool:[sender isOn]
     forKey:MyPrefKey];

但是如何记住启用了文本文件?使用“setBool”是不可能的,我不知道如何使用 setObject。

 [[NSUserDefaults standardUserDefaults]
         setObject:[textField setEnabled:NO]
         forKey:MyPrefKey];

不工作。

4

1 回答 1

1

为什么setBool用不了?

两者都应该工作,但您应该记住同步用户默认值:

[[NSUserDefaults standardUserDefaults] synchronize];

同样在您的第二个示例中存在错误,您应该将标志设置为[textField isEnabled]而不是setEnabled:NO,因为这将返回 void。您还试图传入一个原语BOOL,它应该被包装在一个NSNumber中以存储为一个对象

[[NSUserDefaults standardUserDefaults]
         setObject:[NSNumber numberWithBool:[textField isEnabled]]
         forKey:MyPrefKey];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-08-15T06:44:51.340 回答