我正在尝试保存从iCloud文档选择器(UIDocumentPickerViewController)返回的安全范围内的URL
该文档指出:
如果URL不是普遍存在的URL,请使用以下命令将书签保存到文件中
的
bookmarkDataWithOptions:includesResourceValuesForKeys:relativeToURL:错误:
方法并传入NSURLBookmarkCreationWithSecurityScope
选项。调用此方法将创建一个书签,其中包含
安全范围内的URL,可用于直接打开文件
用户干预。
但是,编译器说iOS上不支持NSURLBookmarkCreationWithSecurityScope。
有人知道这是怎么回事...?
最佳答案
进一步挖掘后,发现在IOS中创建书签数据时根本不需要选项NSURLBookmarkCreationWithSecurityScope
。这是OS X的选项。您只需在选项字段中输入nil即可。我认为苹果的文件充其量是令人困惑的。
但是,您确实需要在创建书签之前调用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];
同样,Apple的文件充其量是最令人困惑的!我花了很多时间才发现这一点。希望这可以帮助。