你知道为什么在下面的UIDocumentPickerViewController回调中startAccessingSecurityScopedResource总是返回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];
}我尝试了我自己的应用程序和苹果的NewBox示例,在几个设备上尝试,总是得不到。然而,随后的"coordinateReadingItemAtURL“运行得很好。
发布于 2019-08-17 08:36:59
非常晚,但我认为NO意味着要么访问被拒绝,要么更有可能URL实际上不是安全范围的。因此,对stopAccessingSecurityScopedResource的调用应该在if ( l_bStartAccessingWorked )块中。
我还在学习这一点,所以我可能会弄错。到目前为止,它符合我的经验。
https://stackoverflow.com/questions/27936509
复制相似问题