无法使用零 URL 创建 SQL 商店

Cannot create an SQL store with a nil URL

所以我正在尝试使用父应用程序存储的数据创建今日小部件扩展。

我正在尝试通过创建一个 Persistent Store Coordinator 来实现这一点,就像您在父应用程序中所做的那样,并将 URL 用于主应用程序数据库。

但是这样做时出现以下错误;

2016-03-13 12:59:02.155 TodayWidget[10942:1456153] Failed to inherit CoreMedia permissions from 5079: (null) 2016-03-13 12:59:02.336 TodayWidget[10942:1456112] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an SQL store with a nil URL.'

这是我在“今日”小部件视图控制器中所做的。 containerPath 与 today 扩展目标的包标识符相同。 containerPath?.URLByAppendingPathComponent sql 文件名与父应用程序核心数据堆栈相同 sql 文件名以及 modelURL 与父应用程序中的相同.

var context: NSManagedObjectContext!

let fileManager = NSFileManager.defaultManager()
var containerPath = fileManager.containerURLForSecurityApplicationGroupIdentifier("com.company.APPNAME.TodayWidget")

containerPath = containerPath?.URLByAppendingPathComponent("SingleViewCoreData.sqlite")
let modelURL = NSBundle.mainBundle().URLForResource("APPNAME", withExtension: "mom")
let model = NSManagedObjectModel(contentsOfURL: modelURL!)
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model!)
    do {
        try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: containerPath, options: nil)
    } catch {
     print("yellow")
    }

  context = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
  context.persistentStoreCoordinator = coordinator

有人知道我该如何解决这个错误吗?

PS:我启用并创建了应用程序组,并将今日小部件添加为核心数据模型和子类的目标。

"com.company.APPNAME.TodayWidget" 看起来很可疑。它看起来像您今天的小部件的捆绑包 ID。 containerURLForSecurityApplicationGroupIdentifier() 的参数应该是您在设置 com.apple.security.application-groups 功能时指定的字符串。