2012-04-15 41 views
2

Possible Duplicate:
iPhone, 「More than maximum 5 filtered album lists trying to register. This will fail.」 ErrorXcode的誤差超過5個UIImages

當我通過酥料餅的控制器或模態視圖控制器中添加圖片的UIImageViews,第4圖像後,當我去加入5日,Xcode的調試器輸出:「錯誤:超過最多5個過濾相冊列表試圖註冊,這將失敗「它仍然會讓我添加5張圖片,但只有4張圖片可以保存。我已經在這裏做了一些研究,並發現了這個問題,並且發現了這個問題: iOS 5 GM: <Error>: More than maximum 5 filtered album lists trying to register. This will fail

這裏的答案看起來好像它是Apple的一個錯誤,應該忽略它。那麼,蘋果通常會(修正)他們的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; 
    } 
} 

UPDATE:這裏是我當前的代碼:

- (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]; 
} 
+1

是的,一個確切的副本。不過,我們應該重新打開原件。 – Costique 2012-04-15 05:12:56

+1

@IuliusCæsar我做到了。需要更多的選票。 – Costique 2012-04-16 04:19:38

+0

@Costique:哦,該死的,我以爲這是我的投票,但已經過期了。那麼它會再次出現在10K工具的重新打開列表中。必要時,mod標誌總是一個選項。 – 2012-04-16 04:25:33

回答

2

從鏈接的其他問題,這聽起來像這是一個Apple bug,但與創建多個UIImagePickerController s有關。您一次只能呈現一個圖像選擇器控制器,因此也許您應該在第一次調用grabImage時創建一個,然後重複使用它,而不是每次都創建一個。

+0

好吧,這很有道理,謝謝。我對編程非常陌生,你知道我將如何編輯我的代碼來做到這一點嗎? – John 2012-04-15 14:56:52

+1

您正在將'UIImagePickerController'的一個新實例放入'self.imgPicker'屬性中。在第一次發生這種情況之前,該房產的價值將爲「零」。之後,它將成爲圖像選擇器控制器。你認爲你應該檢查什麼時候? (提示:這與您有條件地設置圖像視圖的圖像時的模式相同。) – rickster 2012-04-15 21:44:06

+0

很酷,非常感謝,這很有道理。我認爲我需要檢查圖像選取器控制器是否爲nil,在我的imagePickerController方法的if語句中? – John 2012-04-15 22:07:28