如何在MonoTouch中将bool转换为NSObject

8

这让我有点疯狂。我正在尝试在我的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/>,这是我所期望的。那么如何注册默认的布尔值呢?
2个回答

15
以下方法适用于我:

以下方法适用于我:

 bool someValue;
 NSObject objValue = NSObject.FromObject(someValue);

6

这是我做事的方法:

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

    settings.RegisterDefaults (defaults);
}

当然,我有不止一个键值对,这让我避免了对NSMutableDictionary进行多次调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接