【问题标题】:UIDocumentPickerViewController delegate: startAccessingSecurityScopedResource always returns NOUIDocumentPickerViewController 委托:startAccessingSecurityScopedResource 总是返回 NO
【发布时间】:2015-01-14 05:41:44
【问题描述】:

知道为什么 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];
}

我尝试了我自己的 App 和 Apple 的 NewBox 示例,在一些设备上进行了尝试,但总是没有。但是,随后的“coordinateReadingItemAtURL”工作正常。

【问题讨论】:

    标签: ios uidocumentpickervc


    【解决方案1】:

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

    我还在学习这个,所以我可能会弄错。它符合我目前的经验。

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2014-10-07
      • 1970-01-01
      相关资源
      最近更新 更多