use*_*037 3 core-data ios swift
我有一个包含以下结构的工作区:
工作空间:
-- SomeApp
-- SomeFramework
---- DataService.swift
---- FrameworkModel.xcdatamodeld
Run Code Online (Sandbox Code Playgroud)
SomeFramework 已添加(嵌入并签名)到 SomeProject。
persistentContainer.viewContextSomeFrameworkimport Foundation
import CoreData
public class DataService {
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "FrameworkModel")
container.loadPersistentStores { description, error in
if let error = error {
fatalError("Unable to load persistent stores: \(error)")
}
}
return container
}()
public init() {
print(persistentContainer.viewContext) //Crashes here because "Failed to load model named FrameworkModel"
}
}
Run Code Online (Sandbox Code Playgroud)
需要指定框架bundleID和型号名称:
let frameworkBundleID = "com.frameworkBundleID"
let modelName = "FrameworkModel"
lazy var persistentContainer: NSPersistentContainer = {
let frameworkBundle = Bundle(identifier: self.frameworkBundleID)
let modelURL = frameworkBundle!.url(forResource: self.modelName, withExtension: "momd")!
let managedObjectModel = NSManagedObjectModel(contentsOf: modelURL)
let container = NSPersistentContainer(name: self.modelName, managedObjectModel: managedObjectModel!)
container.loadPersistentStores { storeDescription, error in
if let error = error {
fatalError("Unable to load persistent stores: \(error)")
}
}
return container
}()
Run Code Online (Sandbox Code Playgroud)
非常感谢https://medium.com/@yoellev8/sharing-a-core-data-model-with-a-swift-framework-5d191ccec99e
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |