在iOS上保存iCloud Drive安全范围URL(UIDocumentPickerViewController)

Sco*_*tty 3 cocoa ios icloud

我正在尝试保存从iCloud文档选择器返回的安全范围URL(UIDocumentPickerViewController)

文件说明:

如果URL不是普遍存在的URL,请使用bookmarkDataWithOptions:includesResourceValuesForKeys:relativeToURL:error:方法并传入NSURLBookmarkCreationWithSecurityScope选项将书签保存到文件中.调用此方法会创建一个包含安全范围URL的书签,您可以使用该URL打开文件而无需进一步的用户干预.

但是,编译器说iOS上不支持NSURLBookmarkCreationWithSecurityScope.

谁知道这里发生了什么......?

us_*_*vid 6

进一步挖掘后,结果显示选项:
NSURLBookmarkCreationWithSecurityScope
在IOS中创建书签数据时根本不需要.它是OS X的一个选项.您可以为选项字段传递nil.我认为Apple的文档最让人困惑.
但是,您需要
startAccessingSecurityScopedResource
在创建书签之前调用:并确保在继续之前调用返回1(成功).否则,书签创建将失败.以下是示例代码:
if([url startAccessingSecurityScopedResource]==1){
NSError *error;
NSData *bookmark = [url bookmarkDataWithOptions:nil
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&error];
if(error)
//handle error condition
else
// save your bookmark
}
[url stopAccessingSecurityScopedResource];

苹果公司的文件再次出现了混乱!我花了很多时间才发现这一点.希望这可以帮助.