iOS 9和WatchOS 2上的NSUserDefaults(suiteName :) – 不工作?
我以前做过,但似乎没有任何工作。 这是我的代码:
保存在iOS应用程序中
let groupDefaults = NSUserDefaults(suiteName: "group.company.appSharedDefaults") groupDefaults?.setObject(theArray, forKey: "theKey") groupDefaults?.synchronize()
阅读(适用于iOS,但不适用于WatchOS 2)
let groupDefaults = NSUserDefaults(suiteName: "group.company.appSharedDefaults") if groupDefaults!.objectForKey("theKey") != nil { textEmojiArray = NSMutableArray(array: groupDefaults!.objectForKey("theKey") as! NSArray) } else { //error }
这两个.entitlements文件都包含group.company.appSharedDefaults
应用程序组function已打开,并在两个目标上都检查了适当的组。
现在,当我在手表上运行读取代码时,objectForKey返回nil,但它在iOS上可用(设备和模拟器结果相同)。
我错过了什么!
在watchOS 2中,你需要记住有两个不同的进程在运行:
- Apple Watch程序
- iPhone过程
这两个进程都有自己的沙箱,这就是为什么他们称之为“原生”,所以如果你尝试使用共享的NSUserDefaults,它将无法工作,因为苹果手表应用程序有一个完全不同的沙箱比主机iPhone应用程序。
如果您想将手机中的某些内容保存到Apple Watch上的NSUserDefaults目标:
使用WatchConnectivity将要保存的数据发送到手表。 然后,当手表收到您发送给它的数据时,将其保存到Apple手表的默认NSUserDefaults中。
- 如何使用具有大图像和不同宽高比的CIDetector和CIFaceFeature
- Mockear和JSON的修改版本。
- GMSGeocoder – 如何设置响应语言
- IOS NSDate从string只有时间
- xcodebuild:cdtool无法编译:DataModelCompile /path/to/coredatamodel.xcdatamodeld dyld:找不到符号:_OBJC_CLASS _ $ _ OS_object
- 在Parse iOS中链接用户ID和安装ID
- 用UIBezierPath绘制graphics曲线
- iOS UIWebView中未定义requestAnimationFrame?
- 我们正在招聘iOS开发人员