2013-08-25 3 views
0

Новичок в xcode и объектив-c. так что простите мои ошибки новобранец, но у меня была эта ошибка «NSInvalidArgumentException», причина: «- [UIView isAnimating]: непризнанный селектор, отправленный экземпляру« уже более суток », и сделал большой поиск без преобладания. Нет ошибок при очистке/сборке приложения, но когда я нажимаю кнопку, чтобы загрузить «UIIMagePickerController», приложение завершает работу и выдает ошибку. пожалуйста помоги. ТНХ'NSInvalidArgumentException', причина: '- [UIView isAnimating]: непризнанный селектор, отправленный в экземпляр

- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType 
{ 
    if (self.imageView.isAnimating) 
    { 
     [self.imageView stopAnimating]; 
    } 

    if (self.capturedImages.count > 0) 
    { 
     [self.capturedImages removeAllObjects]; 
    } 

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; 
    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext; 
    imagePickerController.sourceType = sourceType; 
    imagePickerController.delegate = self; 

    if (sourceType == UIImagePickerControllerSourceTypeCamera) 
    { 
     imagePickerController.showsCameraControls = NO; 

     [[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil]; 
     self.overlayView.frame = imagePickerController.cameraOverlayView.frame; 
     imagePickerController.cameraOverlayView = self.overlayView; 
     self.overlayView = nil; 
    } 

    self.imagePickerController = imagePickerController; 
    [self presentViewController:self.imagePickerController animated:YES completion:nil]; 

}

+0

Показать Ваш код. Где вы называете 'isAnimating'? Как вы сохраняете сборщик изображений? – Wain

+1

Вы проверили 'imageView' - это действительно изображение. Когда вы начинаете его оживлять? – Wain

ответ

1

Ваш код self.imageView.isAnimating это превращается в [нечто подобное] это компилятором:

[[self imageView] isAnimating] 

Согласно сообщению об ошибке, [self imageView] возвращается в UIView объект. Нет метода isAnimating класса UIView, поэтому вы получаете исключение.

Узнайте, где находится [self imageView], возможно, там что-то не так? Кроме того, у вас включен ARC? Это может быть ошибка управления памятью.

+1

Да! вот и все! Sooo просто! Ответы Вайн и Абхи способствовали решению. Я, должно быть, случайно удалил UIImageView с контроллера. Я только начал программировать неделю назад и очень ценю вашу помощь, ребята! есть ли способ, которым я могу дать вам кредит на то, что помог мне здесь? Я ничего не могу проголосовать, потому что я слишком новичок. Но, спасибо вам, ребята, программисты - самые дружелюбные люди, с которыми я когда-либо сталкивался! –

+0

@JaredGross, вы можете отметить ответ как правильный. Постскриптум Добро пожаловать в мир кода :-) – Wain

+0

@JaredGross в стороне от принятия чьего-либо ответа, также убедитесь, что вы продвигаете любой ответ или комментарий, который был полезен. Вы также получаете вознаграждение за принятие ответов. –

0

Попробуйте изменить строку:

if (self.imageView.isAnimating) 

в

if ([self.imageView isAnimating]) 

И убедитесь, что self.imageView действительно и UIImageView

+0

Эти две строки, в то время как синтаксически разные, фактически эквивалентны. Часть о самоутверждении.imageView - это UIImageView. – oltman

0

Это сообщение об ошибке означает, что вы пытаетесь отправить сообщение (примерно эквивалент вызова функции в Java, C++ или большинстве других языков) к объекту tha t не реализует его. Это то, что делает Objective C отличным от многих других популярных языков. Я рекомендую давать this article чтения, а именно та часть, которая говорит

система определяет, во время выполнения, в то время как программа выполняется, или не отвечает данный объект конкретного сообщения, и если да, то какой метод выполняется.

Кроме того, как уже отмечалось, сообщение об ошибке говорит, что ваш imageView объект является UIView и не UIImageView. Выясните, почему это должно решить вашу непосредственную проблему.

+0

Да, ошибка была в imageView, фактически являющейся UIImageView. Я, должно быть, случайно удалил исходный UIImageView или связанный с ним imageView до viewController. В любом случае, я двигаюсь дальше! –