2016-04-23 32 views
0

我正在使用小部件应用程序。对于Today Extension,我是全新的。我想在应用程序和今天的扩展之间共享数据。我创建了一个数据库。该数据库中有4个表格。我发现这个代码创建数据库的应用程序组:与今天的扩展无法共享SQLite

NSString *appGroupId = @"group.appname"; 
    NSURL *appGroupDirectoryPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; 
    dataBaseURL = [appGroupDirectoryPath URLByAppendingPathComponent:@"database.sqlite"]; 
    NSLog(@"dataBaseURL %@", dataBaseURL); 

它的工作。我的SQLite文件已经创建。但它没有显示我的表格。它显示空的数据库。我对此毫不知情。请帮忙。

+0

如果要创建新的数据库,然后它会显然是空的。 – Lion

+0

哦..那么如何在SQLIte工具中使用我创建的数据库?我已经创建了4个表格并将其添加到我的项目中。 @Lion – Monika

回答

1

如果你正在创建新的数据库,那么它显然是空的。

你可以用目标c中的表创建数据库。不需要从xcode外部创建数据库并拖放yto xcode。你可以参考这个techotopia tutorial

现在,如果你把数据库中的主束通过拖放即可进入像,

NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"myDbName" ofType:@"sqlite"]; 

通过这种方式,你可以得到你的数据库路径。这里的pathforresource是你的数据库名称,我认为database在你的情况下,oftypeextention,我认为sqlite在你的情况。

现在如果你想在URL,那么你可以将其转换在URL喜欢你的路径字符串,

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; 

    or 

    NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 

希望这将有助于:)

+0

感谢您的回复。它适用于我的应用程序。但我想与今天的扩展分享这个相同的数据库。我怎样才能做到这一点? – Monika

+0

不客气。 :)我不太了解今天的扩展,所以谷歌它,你会发现一定的解决方案。如果你觉得这个答案有帮助,那么接受它,以便其他有类似问题的人可以使用它。 – Lion

+0

最后..当我问我的问题,它创建空的数据库。所以我使用了相同的代码,然后通过编码创建了表格。然后我解决了我的问题。因此,您在答案中写下的一行“可以用目标c中的表创建数据库”。帮助我解决它。 :D ..谢谢;) – Monika