objective-c - 超过 5 个 UIImage 时出现 Xcode 错误

标签 objective-c ios xcode

Possible Duplicate:
iPhone, “More than maximum 5 filtered album lists trying to register. This will fail.” Error

当我通过 Popover Controller 或模态视图 Controller 将图像添加到 UIImageViews 时,在第四张图像之后,当我添加第五张图像时,Xcode 的调试器输出:“错误:尝试超过最大 5 个过滤专辑列表注册。这会失败。”它仍然会让我添加 5 张以上的图片,但只保存其中的 4 张。我对此进行了一些研究,并发现了这个问题: iOS 5 GM: <Error>: More than maximum 5 filtered album lists trying to register. This will fail

这里的答案似乎是苹果的一个错误,应该被忽略。嗯,苹果通常(在某种程度上)很快修复他们的 Xcode bug,而且这个问题已经存在了一段时间,所以我开始想知道真正的原因是什么。我认为此错误与我的应用程序仅保存最多 4 张图片有关。

这是我正在使用的代码:

- (IBAction)grabImage {
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.delegate = self;
    self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        _popover = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
        [_popover presentPopoverFromRect:self.imageView.bounds inView:self.imageView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    } 

    else {
        [self presentModalViewController:imgPicker animated:YES];
    }
    [self.imgPicker resignFirstResponder];
}
// Sets the image in the UIImageView
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    if (imageView.image == nil) {
        imageView.image = img;

        [self.array addObject:imageView];

        [picker dismissModalViewControllerAnimated:YES];
        [self.popover dismissPopoverAnimated:YES];
        return;

    }

    if (imageView2.image == nil) {
        imageView2.image = img;
        NSLog(@"The image is a %@", imageView);
        [self.array addObject:imageView2];

        [picker dismissModalViewControllerAnimated:YES];
        [self.popover dismissPopoverAnimated:YES];
        return;
    }

    if (imageView3.image == nil) {
        imageView3.image = img;

        [self.array addObject:imageView3];

        [picker dismissModalViewControllerAnimated:YES];
        [self.popover dismissPopoverAnimated:YES];
        return;
    }

    if (imageView4.image == nil) {
        imageView4.image = img;

        [self.array addObject:imageView4];

        [picker dismissModalViewControllerAnimated:YES];
        [self.popover dismissPopoverAnimated:YES];
        return;
    }
    if (imageView5.image == nil) {
        imageView5.image = img;

        [self.array addObject:imageView5];

        [picker dismissModalViewControllerAnimated:YES];
        [self.popover dismissPopoverAnimated:YES];
        return;
    }
}

更新:这是我当前的代码:

- (IBAction)grabImage {
    if (self.imgPicker == nil) {
        self.imgPicker = [[UIImagePickerController alloc] init];
    }

    self.imgPicker.delegate = self;
    self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        _popover = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
        [_popover presentPopoverFromRect:self.imageView.bounds inView:self.imageView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    } 

    else {
        [self presentModalViewController:imgPicker animated:YES];
    }
    [self.imgPicker resignFirstResponder];
}

最佳答案

从链接的其他问题来看,这听起来像是一个 Apple 错误,但与创建多个 UIImagePickerController 相关。您一次仅呈现一个图像选择器 Controller ,因此也许您应该在第一次调用 grabImage 时创建一个图像选择器 Controller ,然后重用它,而不是每次都创建一个新 Controller 。

关于objective-c - 超过 5 个 UIImage 时出现 Xcode 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159056/

相关文章:

ios - 如何在 UITableView 上选择单个按钮

ios - 将自定义标识符设置为事件工具包事件

iphone - Xcode 4 不调整文字大小

objective-c - 使用 NSTimer 制作闹钟

ios - 更改 View 的值及其图层的值

ios - 〜创建新目标时,该类与键的键值编码不兼容〜

iphone - Objective C 颜色编码?

ios - Cocoa,如何知道哪些操作可以在主线程之外调用

objective-c - Xcode 在设备上运行之前立即崩溃

ios - 启用位代码是否会减小 Unity IOS 构建的原始大小