尝试在路径文件中添加只读文件:///var/mobile/Media/PhotoData/Photos.sqlite?

arc*_*tre 5 uiimagepickercontroller

我刚刚更新到新的Xcode beta 6.0,当尝试编译iOS 8的ipad mini时,我在控制台中遇到了一个奇怪的错误:

"尝试在路径文件中添加只读文件:///var/mobile/Media/PhotoData/Photos.sqlite?readonly_shm = 1 read/write.将其添加为只读.这将是一个很难的错误;您必须指定NSReadOnlyPersistentStoreOption"

执行以下代码时会发生这种情况:

if ([self.rootDelegate respondsToSelector:@selector(wImageRequiresAPhotoPicker:)]){
        [self.rootDelegate wImageRequiresAPhotoPicker:(DWImage*)item];
    }
Run Code Online (Sandbox Code Playgroud)

和:

-(void)wImageRequiresAPhotoPicker:(DWImage *)img{
    self.selectedWimg = img;
    DWImagePickerController *imgPicker = [[DWImagePickerController alloc] init];
    [imgPicker setDelegate:self];
    [imgPicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    [imgPicker setAllowsEditing:YES];
    [imgPicker setModalPresentationStyle:UIModalPresentationCurrentContext];

    UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
    popOver.delegate = self;
    self.popoverImageViewController = popOver;
    [self.popoverImageViewController presentPopoverFromRect:img.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)

}

有没有人知道为什么会这样?

Mar*_*uro 3

很可能是 iOS 8 beta 2 中新引入的错误。让我们看看它是如何发展的。

看来 ALAssetsLibrary 请求内部对Photos.sqlite数据库的读写访问权限,并且它只能获得读取访问权限。我在此通话中收到相同的错误:

[self.assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
    usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

    ...
Run Code Online (Sandbox Code Playgroud)