ios键盘扩展中的Coredata

Posted

技术标签:

【中文标题】ios键盘扩展中的Coredata【英文标题】:Coredata in ios keyboard extension 【发布时间】:2017-05-22 08:09:54 【问题描述】:

我阅读了下面的 github 页面并使用代码在我的 ios 键盘扩展程序和应用程序之间共享 coredata

https://github.com/maximbilan/iOS-Shared-CoreData-Storage-for-App-Groups

代码在模拟器上运行正常,但无法运行,但addPersistentStore 无法在真实设备上运行:

lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = 
    // The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
    // Create the coordinator and store
    var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)

    let directory = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:"group.testKeyboard.asanpardakht.ir")!

    let url = directory.appendingPathComponent("AsanPardakhtSharedData.sqlite")

    do 
        try coordinator!.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
     catch var error as NSError 
        coordinator = nil
        NSLog("Unresolved error \(error), \(error.userInfo)")
        abort()
     catch 
        fatalError()
    
    print("\(String(describing: coordinator?.persistentStores))")
    return coordinator
()

我收到以下错误:

NSError 域:“NSCocoaErrorDomain” - 代码:512

"reason" : "创建文件失败;code = 1"

我尝试在我的info.plist 文件中将RequestOpenAccess 设置为YES,但它仍然无法正常工作。有人对这个问题有任何想法吗?

【问题讨论】:

您是否为应用组“group.testKeyboard.asanpardakht.ir”设置了权利? 是的,对于键盘目标和应用目标 【参考方案1】:

我发现下面的帖子也适用于键盘扩展:

https://github.com/maximbilan/iOS-Shared-CoreData-Storage-for-App-Groups

唯一的问题是,对于键盘扩展,我们还应该将RequestOpenAccessinfo.plist 设置为YES

在键盘设置中将其设置为YES时,会出现Full Access的选项,我们应该将其打开,然后代码也可以在真实设备上运行。

开发人员应确保在调用任务中的方法之前要求用户将选项设置为 On。

【讨论】:

以上是关于ios键盘扩展中的Coredata的主要内容,如果未能解决你的问题,请参考以下文章

IOS 8 App Group 访问键盘扩展中的容器应用程序文件

iOS 8 键盘扩展:出现呼叫栏时出现约束错误?

iOS 键盘扩展:像粘贴一样的拟我表情

ios 8 键盘扩展设置包

键盘扩展:是不是可以从股票 iOS 键盘继承功能和 UI?

在自定义键盘扩展中播放标准 iOS 键盘点击声音