我想将共享扩展程序集成到我的 iPhone 应用程序中。应用程序包含 sqlite 数据库,其中包含一些电话簿联系人。我在应用程序中添加了共享扩展,并且扩展在共享事件 View Controller 中也是可见的。但问题是我无法访问主应用程序 sqlite 数据库。当我在扩展中记录数据库路径时,它显示的路径与主应用程序 sqlite 数据库路径不同。所以请帮助我了解如何访问主应用程序数据库以从 sqlite 获取数据,以便我可以将它们显示到共享扩展自定义 View Controller 中,并且还想将新数据插入数据库中。
在功能中添加“应用组”,以便将主应用中的数据传输到扩展
共享 NSUserDefaults
数据:
[NSUserDefaults standardUserDefaults]
替换为 [[NSUserDefaults alloc] initWithSuiteName"group.com.XXX.XXX"];
如果您在文档目录中复制了 sqlite 文件。因此,从
更改文档目录路径试试吧! FileManager.default.url(for:.documentDirectory, in:.userDomainMask,appropriateFor: nil, create:false).appendingPathComponent(fileName)
到
let fileManager = FileManager.default
let directory = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.com.xxx.xxx")
return directory!.appendingPathComponent(fileName).path
Target Members
(主项目和
所需类(class)的扩展)target 'Main_App' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! target 'Main_App_extension' do use_frameworks! inherit! :search_paths pod 'FMDB’ pod 'Kingfisher' end end
关于ios - 将 sqlite db 共享到 iPhone 应用程序的共享扩展中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45251714/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |