我正在开发小部件应用。我对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文件已经创建。但它没有显示我的表格。它显示空数据库。我对此一无所知。请帮忙。
答案 0 :(得分:1)
如果您正在创建新数据库,那么它显然会清空。
首先,您可以使用目标c中的表创建数据库。无需从xcode外部创建数据库并拖放yto xcode。你可以参考这个techotopia tutorial。
现在,如果您通过拖放将数据库放入主包中,那么您可以访问,例如
NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"myDbName" ofType:@"sqlite"];
通过这种方式,您可以获得数据库路径。这里pathforresource是你的数据库名称,我认为database
在你的情况下oftype
是extention
,我认为sqlite
就是你的情况。
现在你将路径作为字符串,如果你想在url中然后你可以在url中转换它,
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
or
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
希望这会有所帮助:)