我的 iOS 应用程序将数据库发送到WatchKit (watchOS 2). 在WatchKit我使用以下代码来获取监视文档文件夹以保存新文件:
NSURL* fileURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"MyDatabase.sqlite"];\nRun Code Online (Sandbox Code Playgroud)\n\n这会产生一个 URL:
\n\n@"file:///var/mobile/Containers/Data/PluginKitPlugin/47E13085-9030-4ED2-906F-01CBA323F07A/Documents/MyDatabase.sqlite"\nRun Code Online (Sandbox Code Playgroud)\n\n但是,当我调用该函数时:
\n\n[[NSFileManager defaultManager] replaceItemAtURL:fileURL withItemAtURL:url backupItemName:nil options:0 resultingItemURL:nil error:&error];\nRun Code Online (Sandbox Code Playgroud)\n\n它抛出一个错误说:
\n\n\n\n\n错误域=NSCocoaErrorDomain代码=512“文件\xe2\x80\x9cMyDatabase.sqlite\xe2\x80\x9d无法\xe2\x80\x99t保存在文件夹\xe2\x80\x9cDocuments\xe2\x80\x9d中。” \n 错误域=NSCocoaErrorDomain 代码=513 “您\xe2\x80\x99t 无权保存文件\xe2\x80\x9cMyDatabase.sqlite\xe2\x80\x9d
\n
我怎样才能找到一个允许我保存的文件夹?\n当然,这段代码在模拟器中工作得很好,所以我假设我错过了一些不太明显的东西。
\n\nBR\n弗雷德里克
\n