iOS 8 – 为App Group创建SQLite数据库

iOS 8 – 为App Group创建SQLite数据库,第1张

概述我正忙着为我的应用创建iOS 8 Today扩展程序.我想从我的扩展程序访问我的SQLite(而不是核心数据)数据库.在网上搜索一下后,我发现我需要一个应用程序组.所以我为我的应用程序创建了一个名为“group.AppName”的应用程序组. 使用以下代码,我在NSDocumentDirectory中创建一个SQLite数据库.但App Extensions无法访问NSDocumentDirect 我正忙着为我的应用创建iOS 8 Today扩展程序.我想从我的扩展程序访问我的sqlite(而不是核心数据)数据库.在网上搜索一下后,我发现我需要一个应用程序组.所以我为我的应用程序创建了一个名为“group.Appname”的应用程序组.

使用以下代码,我在NSdocumentDirectory中创建一个sqlite数据库.但App Extensions无法访问NSdocumentDirectory.这就是我想在我的应用程序组中保存sqlite数据库的原因.

NSArray *path = NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES);Nsstring *docPath = [path objectAtIndex:0];dbPathString = [docPath stringByAppendingPathComponent: @"dbname.db"];char *error;NSfileManager *fileManager = [NSfileManager defaultManager];if(![fileManager fileExistsAtPath:dbPathString]){    const char *dbPath = [dbPathString UTF8String];    if(sqlite3_open(dbPath,&treinAppDB) == sqlITE_OK)    {        const char *sql_stat = "CREATE table IF NOT EXISTS table (ID INTEGER PRIMARY KEY autoINCREMENT,name TEXT,code TEXT,lat TEXT,lon TEXT)";        sqlite3_exec(appDB,sql_stat,NulL,&error);        sqlite3_close(appDB);    }}

我无法弄清楚如何在我的应用程序组中创建此数据库,因此我可以从我的今日扩展程序访问该数据库.

任何人都可以帮我解决这个问题吗?那太好了!

解决方法 您还必须在应用程序组目录中的包含应用程序中创建数据库文件.
因此,包含应用程序和应用程序扩展将使用与数据库文件相同的文件路径.
Nsstring *appGroupID = @"group.YourAPP.extension";NSURL *appGroupDirectoryPath = [[NSfileManager defaultManager] containerURLForSecurityApplicationGroupIDentifIEr:appGroupID];NSURL *dataBaseURL = [directory  URLByAppendingPathComponent:@"dbname.db"];

因此,通过这种方式,您将在包含应用程序和应用程序扩展中创建数据库文件,您将以相同的方式获取数据库文件.

总结

以上是内存溢出为你收集整理的iOS 8 – 为App Group创建SQLite数据库全部内容,希望文章能够帮你解决iOS 8 – 为App Group创建SQLite数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102429.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存