Как проверить, что устаревший метод iOS SDK больше не работает или недоступен? - PullRequest
2 голосов
/ 23 декабря 2011

В iOS5 Apple отказалась от использования [UIDevice uniqueIdentifier] (см. Здесь http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/)

В настоящее время он все еще работает, но, очевидно, мы хотим перенести наше приложение с его использования. Мы не можем выйти из «холодной индейки», но мы внедряем стратегию миграции для сохранения пользовательских данных без привязки их к реальному физическому устройству (наша единственная причина злоупотребления UDID устройства).

Этот вопрос стека дает отличную альтернативу использованию UDID. Так что у меня есть новый UDID для использования.

Я беспокоюсь о пользователях, которые не удосуживаются обновить наше приложение и в конечном итоге обновят свою версию iOS, чтобы устаревший вызов больше не работал. Наш код предполагает, что вызов uniqueIdentfier гарантированно всегда «работает».

Как я могу проверить, что вызов uniqueIdentifier был успешным, и если он не использовал альтернативный UDID, представленный в вопросе, указанном выше?

Могу ли я проверить, отвечает ли UIDevice селектору? Могу ли я проверить ноль UDID?

1 Ответ

6 голосов
/ 23 декабря 2011

Вы можете проверить это с respondsToSelector: как обычно.Я подтвердил это с помощью селектора, который был удален в iOS 3.1 :

#import <MediaPlayer/MediaPlayer.h>
...
MPMoviePlayerController *mc = [[MPMoviePlayerController alloc] initWithContentURL:nil];
if ([mc respondsToSelector:@selector(backgroundColor)]) {
    NSLog(@"YES");
} else {
    NSLog(@"NO"); /* under iOS 5 it goes here */
}
...
...