UIDocumentPickerViewController delegate: startAccessingSecur



知道为什么startAccessingSecurityScopedResource总是在UIDocumentPickerViewController的以下回调中返回NO:

- (void)documentPicker:(UIDocumentPickerViewController*)in_documentPickerViewController didPickDocumentAtURL:(NSURL*)in_pickedDocumentAtURL
{
   BOOL l_bStartAccessingWorked = [in_pickedDocumentAtURL startAccessingSecurityScopedResource];
   ....
   void(^l_coordinateReadingAccessor)(NSURL*) = ^(NSURL* in_coordinateReadingURL)
   {
       ....
   };
   NSFileCoordinator* l_fileCoordinator = [[[NSFileCoordinator alloc] init] autorelease];
   NSError* l_error = nil;
   [l_fileCoordinator coordinateReadingItemAtURL:in_pickedDocumentAtURL
                                         options:0
                                           error:&l_error
                                      byAccessor:l_coordinateReadingAccessor];
   [in_pickedDocumentAtURL stopAccessingSecurityScopedResource];
}
我尝试

了我自己的应用程序和Apple的NewBox示例,在几台设备上尝试过,但总是得到NO。但是,随后的"coordinateReadingItemAtURL"工作得很好。

很晚了,但我认为 NO 意味着拒绝访问,或者更有可能的是,URL 实际上不是安全范围的。因此,您对 stopAccessingSecurityScopedResource 的调用应该在 if ( l_bStartAccessingWorked ) 块内。

我还在学习这个,所以我可能弄错了。它符合我迄今为止的经验。

相关内容

  • 没有找到相关文章

最新更新