UIImageView initWithCoder - нераспознанный селектор, отправленный экземпляру ... iOS 5 beta SDK - PullRequest
1 голос
/ 11 августа 2011

Извините, если об этом уже спрашивали, но возникает проблема:

Я недавно обновил свой SDK до iOS 5 beta . Мое приложение прекрасно работает и работает на новом симуляторе, но когда я пытаюсь изменить цель развертывания на более старую iOS ( 4.3 ), приложение мгновенно завершает работу при попытке использовать UIActivityIndicatorView управление (как симулятор, так и устройство). Я использую UIActivityIndicatorView в действительно простом представлении загрузки, состоящем только из View и UIActivityIndicatorView .

Когда я удаляю UIActivityIndicatorView элемент управления из этого представления, представление работает нормально, НО приложение вылетает при загрузке других представлений (с индикаторами активности и изображениями). Итак, короче говоря: приложение отлично работает в среде iOS 5, но изображения и индикаторы активности дают сбой при работе на более старых версиях iOS. Есть идеи?

Заранее спасибо!

EDIT

Я добавляю код, чтобы показать вам, ребята, как я использую представление. Это действительно немного, и сам LoadingViewController не имеет абсолютно никакого пользовательского кода (все элементы управления находятся в кончике).

if(!self.loadingScreen){
    self.loadingScreen = [[LoadingViewController alloc] initWithNibName:@"LoadingViewController" bundle:nil];
}
[self.view addSubview:loadingScreen.view];

Сообщение об исключении на самом деле не говорит намного больше, но здесь вы идете:

0   CoreFoundation                      0x017bd5a9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x01911313 objc_exception_throw + 44
2   CoreFoundation                      0x017bf0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3   CoreFoundation                      0x0172e966 ___forwarding___ + 966
4   CoreFoundation                      0x0172e522 _CF_forwarding_prep_0 + 50
5   UIKit                               0x00f8e9fd UINibDecoderDecodeObjectForValue + 2592
6   UIKit                               0x00f8f6ac -[UINibDecoder decodeObjectForKey:] + 398
7   UIKit                               0x00d75db0 -[UIImageView initWithCoder:] + 97

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

У меня была такая же проблема, и я только что нашел решение.Мой UIActivityIndicator был добавлен в xib-файл.Я удалил его из xib и создал его с помощью кода (activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: ...).

Все в порядке, теперь работает!

Я надеюсьэто поможет вам.

1 голос
/ 05 сентября 2011

Я не могу открыть URL https://devforums.apple.com/message/507796#507796...., но я думаю, что вы можете создать категорию для класса UIImage, например:

@implementation UIImage (Coder)

- (id)initWithCoder:(NSCoder *)aCoder
{
     return nil;
}

@end
1 голос
/ 11 августа 2011

Следуя совету smith324, я начал просматривать форумы разработчиков Apple, чтобы выяснить, не делаю ли я что-то не так или есть ли ошибка в SDK.Оказывается, в последнем выпуске есть неприятная ошибка, приводящая к сбою UIImages, UIActivityIndicators и т. Д., Как и в моем случае.Хорошая новость в том, что есть обходной путь , и вы можете найти его здесь: https://devforums.apple.com/message/507796#507796

Спасибо всем за вашу помощь!

РЕДАКТИРОВАТЬ:

Если вы не можете получить доступ к ссылке, это рекомендуемый ответ:

@implementation UIImage (initWithCoder)

- (id)initWithCoder:(NSCoder *)aDecoder
{
     return nil;
}

@end
...