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