do *_*ter 11 xcode nsuserdefaults ios swift ios-app-group
我正在开发一个应用程序和一个小部件,小部件需要从app获取数据.我已经使用以下代码在NSUserDefaults上进行读写.我也用于$(PRODUCT_BUNDLE_IDENTIFIER).widget
小部件并$(PRODUCT_BUNDLE_IDENTIFIER)
参考这篇文章.但是widget无法从app或NSUserDefaults获取数据.我怎样才能使它工作?
func addTask(name: String?) {
let key = "keyString"
tasks.append(name!)
let defaults = NSUserDefaults(suiteName: "group.Mins")
defaults?.setObject(tasks, forKey: key)
defaults?.synchronize()
}
Run Code Online (Sandbox Code Playgroud)
///////
let defaults = NSUserDefaults(suiteName: "group.Mins")
let key = "keyString"
if let testArray : AnyObject = defaults?.objectForKey(key) {
let readArray : [String] = testArray as! [String]
timeTable = readArray
timeTable = timeTable.sort(<)
print("GOT IT")
print("timetable: \(timeTable)")
}
Run Code Online (Sandbox Code Playgroud)
Ras*_*n L 44
要从同一组NSUserDefaults中读取和保存,您需要执行以下操作:
写信给您的NSUserDefaults:
// In this example I´m setting FirstLaunch value to true
NSUserDefaults(suiteName: "group.myapp.test")!.setBool(true, forKey: "FirstLaunch")
Run Code Online (Sandbox Code Playgroud)
从NSUserDefaults阅读:
// Getting the value from FirstLaunch
let firstLaunch = NSUserDefaults(suiteName: "group.myapp.test")!.boolForKey("FirstLaunch")
if !firstLaunch {
...
}
Run Code Online (Sandbox Code Playgroud)
UserDefaults(suiteName: "group.myapp.test")!.set(true, forKey: "FirstLaunch")
Run Code Online (Sandbox Code Playgroud)
UserDefaults(suiteName: "group.myapp.test")!.bool(forKey: "FirstLaunch")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8839 次 |
最近记录: |