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

时间:2014-06-23 16:01:18

标签: uiimagepickercontroller

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

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

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

if ([self.rootDelegate respondsToSelector:@selector(wImageRequiresAPhotoPicker:)]){
        [self.rootDelegate wImageRequiresAPhotoPicker:(DWImage*)item];
    }

并且:

-(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];

}

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

2 个答案:

答案 0 :(得分:3)

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

似乎ALAssetsLibrary请求内部读取&写访问Photos.sqlite数据库,它只能获得读访问权限。我收到同样的错误:

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

    ...

答案 1 :(得分:1)

这是一个核心数据错误,因为我的应用程序不使用核心数据,并且当我访问照片库选择器时收到错误,我会说它在Apple上,并且是一个错误。显然,文件试图以读/写方式添加,并且它们是只读的。我很确定Apple应该知道这一点,因为他们设置了图像选择器。我只想尝试访问它。

self.pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;