保存到watchOS 2文件夹

时间:2015-10-02 16:54:59

标签: objective-c watch-os-2

我的iOS应用将数据库发送到WatchKit (watchOS 2)。在WatchKit我使用以下代码获取监视文档文件夹以将新文件保存在:

NSURL* fileURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"MyDatabase.sqlite"];

这会产生一个网址:

@"file:///var/mobile/Containers/Data/PluginKitPlugin/47E13085-9030-4ED2-906F-01CBA323F07A/Documents/MyDatabase.sqlite"

但是,当我调用该函数时:

[[NSFileManager defaultManager] replaceItemAtURL:fileURL withItemAtURL:url backupItemName:nil options:0 resultingItemURL:nil error:&error];

它抛出错误说:

  

错误Domain = NSCocoaErrorDomain Code = 512"文件“MyDatabase.sqlite”无法保存在“Documents”文件夹中。"   错误域= NSCocoaErrorDomain代码= 513"您无权保存文件“MyDatabase.sqlite”

如何找到我可以保存的文件夹? 当然这个代码在模拟器中运行良好,所以我假设我错过了一些不太明显的东西。

BR 弗雷德里克

1 个答案:

答案 0 :(得分:1)

我相信您的问题是Apple Watch扩展程序无法将文件保存到文档目录中。我可以使用应用程序组保存文件。将应用程序组添加到您的权利中,然后您应该能够写入以下目录:

let path = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.my.cool.watch.app")