无法使用零 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
功能时指定的字符串。
所以我正在尝试使用父应用程序存储的数据创建今日小部件扩展。
我正在尝试通过创建一个 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
功能时指定的字符串。