我刚刚更新到新的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];
}
有没有人知道为什么会这样?
答案 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;