我创建了一个应用组来分享iOS应用和扩展程序之间的偏好设置。从任一应用程序,我可以得到一个默认实例,并成功读取和写入这样的值:
let sharedDefaults = NSUserDefaults(suiteName: "group.com.example")
sharedDefaults.setObject("bar", forKey: "foo")
sharedDefaults.stringForKey("foo") // → "bar"
但是,将组的套件名称添加到standardUserDefaults无效:
let standardDefaults = NSUserDefaults.standardUserDefaults()
standardDefaults.addSuiteNamed("group.com.example")
standardDefaults.stringForKey("foo") // → nil
我在这里误解了什么吗?
答案 0 :(得分:0)
尝试在前三行代码的末尾添加remove Suite方法,并在Xcode中的此行中设置断点。查看您是否从搜索列表中删除了指定的键值对。
let sharedDefaults = NSUserDefaults(suiteName: "group.com.example")
sharedDefaults.setObject("bar", forKey: "foo")
sharedDefaults.stringForKey("foo") // → "bar"
sharedDefaults.removeSuite(suiteName: "group.com.example")//remove suite
//put a breakpoint here.