我有當用戶按下一個按鈕,我在酥料餅顯示的UIImagePickerController。此功能在iPad模擬器完全正常,但是當我嘗試做一個實際的測試設備上同樣的事情,我得到的分配/初始化線的NSRangeException
我的圖片選擇!的UIImagePickerController崩潰上分配/初始化
imagePicker = [[UIImagePickerController alloc] init];//Crashes here on device
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) (kUTTypeImage), nil];
這裏是崩潰的消息:
*終止應用程序由於未捕獲的異常 'NSRangeException',原因:「* - [NSOrderedSet initWithOrderedSet:範圍:copyItems:]:範圍{8 ,1}延伸超出界限[0 .. 0]」
我已確定它是通過試圖跨過在調試模式下線路,並跨過該特定行確切的行是什麼原因引起的異常被拋出。
編輯:
我能夠做出再現這個問題100%的基礎工程,這使我相信這是一款iOS的bug,不是我的代碼。
- 建立一個新的項目。選擇單視圖應用程序。如果它是故事板或基於xib的
- 打開iPad xib/storyboard,向視圖添加roundrectbutton
將以下IBAction添加到視圖控制器。
pickerPopoverController
是__strong
伊娃-(void)iMakeItCrash:(UIButton*)sender { UIImagePickerController* ip = [[UIImagePickerController alloc] init]; ip.delegate = self; ip.allowsEditing = YES; ip.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; ip.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) (kUTTypeImage), nil]; pickerPopoverController = [[UIPopoverController alloc] initWithContentViewController:ip]; [pickerPopoverController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; }
胡克這個IBAction爲到該按鈕的觸摸的內心活動。
- 工程模擬器上,崩潰在iPad上
EDIT2:如果我嘗試使用presentPopoverFromBarButtonItem:
崩潰仍然發生。然而,不崩潰,如果我不呈現圖像選擇器在所有...
如果imagePicker是一個屬性嘗試self.imagePicker = [[ALLOC的UIImagePickerController] INIT]; –
它不是一個性質,只是伊娃 –
我覺得你剛纔評論imagePicker。allowsEditing = YES; – Spynet