分享SQLite与今天的扩展无法正常工作

时间:2016-04-23 10:09:34

标签: ios objective-c sqlite widget today-extension

我正在开发小部件应用。我对Today Extension很新。我想在app和今天的扩展之间共享数据。我创建了一个数据库。我在该数据库中有4个表。我发现此代码为App Groups创建数据库:

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

有效。我的SQLite文件已经创建。但它没有显示我的表格。它显示空数据库。我对此一无所知。请帮忙。

1 个答案:

答案 0 :(得分: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];

希望这会有所帮助:)