iOS共享扩展 - 如何访问核心数据

时间:2015-05-22 07:57:03

标签: ios objective-c sqlite core-data ios-app-extension

我有一个主机应用程序从Core Data获取信息。现在我需要一个共享扩展,它将显示来自主机应用程序数据的一些信息。

我已启用应用群组并已为主机和分机定义,我可以从我的分机访问此路径。

 NSURL *storeURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"com.application"];

当我获取目录和文件时,它只有一个/ Library路径。

NSArray * files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:url error:nil];
[files enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSLog(@"fileName : %@",(NSString *)obj);
}];

我的主机应用程序的sqlite文件位于Documents目录下。如何在共享容器下使这个sqlite文件可用?我需要移动整个数据库吗?任何其他解决方案。

由于

1 个答案:

答案 0 :(得分:3)

如果要直接从db文件访问数据,则必须将其放入共享容器中。我不认为还有其他选择,你不能为主机应用程序创建slink或任何东西。

我正在解决类似的问题,我决定使用组NSUserDefaults来共享我在共享扩展中所需的内容 - 因为它只是几个变量。这可能是一个简单的解决方案