0
我想使用嵌入式框架中包含的通用模块来共享iOS和WatchKit扩展之间的数据。通用模块类具有与App Group一起保存在NSUserDefault中的共享数据。嵌入式框架内的应用程序组不能共享
但是,当从WatchKit扩展中读取时,我在iOS应用程序中写入App Group共享的内容不会被看到。
我已经在两个目标中启用了具有相同组ID的应用程序组。 iOS读取和写入没有错误,如果Watch写入数据,它也会将其无错读取回来 - 但不会看到另一个写入。
任何想法如何解决大大赞赏。
public class ShareManager() {
private let sharedKey = “kungFuShare"
public var kungfuFighters:Array<KungFu> = [];
public init() {
readFromShare()
}
public func readFromShare() {
let myData = NSUserDefaults(suiteName: "group.com.27feathers.kungfu"
if let rawData: NSData = myData?.objectForKey(sharedKey) as? NSData
{
var myData: AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithData(rawData);
self.kungfuFighters = myData as? [KungFu] ?? []
}
}
public func writeToShare() {
let myData = NSUserDefaults(suiteName: "group.com.27feathers.kungfu")
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.kungfuFighters)
myData?.setObject(saveData, forKey: sharedKey)
myData?.synchronize() // same behavior with or without this
}
}
public class KungFu: NSObject, NSCoding {
public var fighterName:String
public init(fighterName:String) {
self.fighterName = fighterName
}
required public init(coder: NSCoder) {
self.fighterName = coder.decodeObjectForKey("fighterName")! as String
super.init()
}
public func encodeWithCoder(coder: NSCoder) {
coder.encodeObject(self.fighterName, forKey: "fighterName")
}
}
我发现第一次添加一个应用程序组令人难以置信的繁琐和无证。你应该提交一个错误报告,我很乐意复制它 – phillfarrugia 2015-02-08 10:59:47