這裏是我的最新動態:核心數據(神奇的記錄)+ WatchKit擴展+可可觸摸框架
我現在有
- 一個iPhone應用程序
- 一個WatchKit擴展
- 一個Cocoa Touch框架,可容納我所有的共享類
我想完成的任務是,它擁有一個持久性存儲(Core Data),可以在我的iPhone應用程序和WatchKit Extension之間共享。
因此,這是我到目前爲止
- 完成創建應用程序組有一個共同的容器。
- 添加核心數據模型(Model.xcdatamodeld)到我的Cocoa Touch框架。
- 創建一個實體在這個模型
- 創建一個NSMangedObject子類此實體,並加入是我的可可觸摸框架
- 增加了一個DataManager類到我的可可觸摸框架
這裏什麼初始化中我DataManager的樣子
public init() {
let sharedContainerURL: NSURL? = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.com.company.Project")
if let sharedContainerURL = sharedContainerURL {
let storeURL = sharedContainerURL.URLByAppendingPathComponent("Model.sqlite")
MagicalRecord.setupCoreDataStackWithAutoMigratingSqliteStoreAtURL(storeURL)
let station: Station? = Station.MR_createEntity()
}
}
這個問題我運行到
當我從iPhone應用程序的AppDelegate啓動我的DataManager時,沒有發生崩潰,但station
將爲零。
當我更換let stations: [Station]? = Station.MR_findAll() as? [Station]
最後一行的應用程序崩潰,並顯示以下錯誤:A fetch request must have an entity.
我找遍了所有的GitHub上SO和神奇紀錄的問題,但找不到任何東西推我正確的方向。所有的幫助非常感謝。
無論你實施什麼,都要考慮到watchOS 2擴展實際上在手錶上運行。閱讀轉換指南中的管理數據部分:https://developer.apple.com/library/prerelease/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/UpdatetheAppCode.html –