6

这让我有点疯狂。我正在尝试在我的 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/>我的预期写入。那么如何注册一个默认的布尔值呢?

4

2 回答 2

14

以下对我有用:

 bool someValue;
 NSObject objValue = NSObject.FromObject(someValue);
于 2013-04-02T21:04:22.390 回答
6

我就是这样做的:

using (var defaults = NSDictionary.FromObjectsAndKeys (new object[] {
        true,
    }, new object [] {
        "AllowInternetAccess",
    })) {

    settings.RegisterDefaults (defaults);
}

当然,我有不止一个键/值对,这使我可以避免多次调用NSMutableDictionary.

于 2012-11-12T23:54:03.830 回答