我想在當前窗口小部件擴展中讀取核心數據屬性。我在這裏搜索了很多網站和問題,但我找不到解決方案!到目前爲止,我添加的應用組到我的應用程序,然後改變這一行中App Delegate
:訪問來自窗口小部件擴展的核心數據
lazy var applicationDocumentsDirectory: NSURL = {
// file. This code uses a directory named "compony.AppName" in the application's documents Application Support directory.
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return urls[urls.count-1]
}()
到:
lazy var applicationDocumentsDirectory: NSURL? = {
return NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.com.myDomain.appgroupID") ?? nil
}()
那麼什麼是下一個步驟?我怎樣才能訪問上下文實體等從小部件中心?如果有人幫助我,我將不勝感激。
我只有一個entity
與幾個attributes
。
編輯
我創建了一個
CoreDataStack.swift
和AppDelegate
複製的所有核心數據文件到新的文件。增加我的數據模型,以小部件擴展:
在擴展
viewDidLoad
我累檢索模型,但沒有任何反應數據,當我運行的窗口小部件:context = CoreDataStack.defaultStack.managedObjectContext do { request = NSFetchRequest(entityName: "Event") results = try context.executeFetchRequest(request) print(results.count) if results.count > 0 { for item in results as! [NSManagedObject] { let name = item.valueForKey("title") print(name!) } }//end if } catch { print("there is an error for saving") }
您是否遵循了所有需要的步驟?例如https://www.invasivecode.com/weblog/sharing-data-between-apps-並且他們的擴展/ –
@LorenzoBoaro這是我見過的最愚蠢的教程!標題是關於核心數據和今天的擴展,但是當你按照最後一步!它說,核心數據並不總是很好!!!!! !!!使用NSUserDefualts !!!!!!!!!!!!!! –