这让我有点疯狂。我试图在我的MonoTouch应用程序中注册一些NSUserDefaults。
var defaultsToRegister = new NSMutableDictionary();
defaultsToRegister.SetValueForKey(true, IS_REMINDING);
NSUserDefaults.StandardUserDefaults.RegisterDefaults(defaultsToRegister);
显然这不是编译因为 bool 无法转换为 NSObject 。但是当我想从 NSUserDefaults 设置或检索一个布尔值时,我可以使用:
public bool IsReminding {
get {
return NSUserDefaults.StandardUserDefaults.BoolForKey(IS_REMINDING);
}
set {
NSUserDefaults.StandardUserDefaults.SetBool(value, IS_REMINDING);
}
}
在设置plist文件中,布尔值写为<key>ReminderTimeOfDay</key><true/>
,这正是我所期望的。那么如何注册默认的布尔值?
答案 0 :(得分:11)
以下对我有用:
bool someValue;
NSObject objValue = NSObject.FromObject(someValue);
答案 1 :(得分:6)
我就是这样做的:
using (var defaults = NSDictionary.FromObjectsAndKeys (new object[] {
true,
}, new object [] {
"AllowInternetAccess",
})) {
settings.RegisterDefaults (defaults);
}
当然,我有多个键/值对,这样我就可以避免多次调用NSMutableDictionary
。