2

UserDefaults在我的应用程序中不起作用。请在文件下找到以下代码AppDelegate

let sharingData = UserDefaults.init(suiteName: "group.macuser79.xxx");
sharingData?.set("vincenzo", forKey:"username");
sharingData?.synchronize();

在要监视的应用程序的 InterfaceController 中,为了能够检索值,我这样做了:

override func awake(withContext context: Any?) {
let sharingData = UserDefaults.init(suiteName: "group.macuser79.xxx");

let username = sharingData?.object(forKey: "username");
    print("Value username \(username)");
}

请让我知道,我做错了什么!

4

3 回答 3

0

试试这个:

let defaults = UserDefaults.standard 
defaults.set("group.macuser79.xxx", forKey:"username")
defaults.synchronize()

要访问商店:

let defaults = UserDefaults.standard
let username = defaults.string(forKey: "username")

我承认我之前没有尝试过init()我自己的UserDefaults实例,但是它的标准实例,它被 iOS 制作成一个单例,是一个很好的使用习惯。

另外,不要忘记正确解开可选项。

于 2016-11-14T13:22:27.007 回答
0

设置:

UserDefaults(suiteName: "group.macuser79.xxx")?.set("vincenzo", forKey: "username")

访问:

UserDefaults(suiteName: "group.macuser79.xxx")!.string(forKey: "username")
于 2016-11-14T15:50:15.400 回答
0

Swift3 UserDefaults获得存储价值方面变得更加智能。在下面的行中,您正在存储String值而不指定它!:

sharingData?.set("vincenzo", forKey:"username");

所以,为了得到它,你需要像下面这样写:

let username = sharingData?.string(forKey: "username");
    print("Value username \(username)");
}

这是根据您的商店获取价值的更好的上下文。

于 2016-11-14T13:11:14.177 回答