UIDocumentPickerViewController委托:startAccessingSecurityScopedResource始终返回NO

时间:2015-01-14 05:41:44

标签: ios uidocumentpickervc

任何想法为什么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"工作得很好。

1 个答案:

答案 0 :(得分:0)

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

我还在学习,所以我可能会误会。到目前为止,这符合我的经验。