2012-02-22 2 views
0

Просмотрев документацию iOS 5, я заметил, что modalViewController устарел вместо представленногоViewController. Я думал об использовании:обнаружил представленныйViewController во время выполнения

[viewController respondsToSelector:@selector(presentedViewController)]; 

Чтобы увидеть, если добытчик присутствовал и использовать presentedViewController когда это поддержка.

Является ли это правильным способом обнаружения этой функции в iOS5 +? или есть лучший способ?

+0

Если вы пишете новый код, и если ваша базовая линия уже установлена ​​на iOS 5, вам не нужно тестировать ее присутствие вообще. Метод есть. Только если у вас есть проект, где вам нужно поддерживать iOS 4 в том же двоичном формате, вам нужно выполнить тест (и способ тестирования, который вы дали, будет работать). – Dirk

ответ

0

Некоторые из кода защищенности являются закрытыми для iOS4, что означает, что просто проверка с ответамиToSelector может не всегда работать. Я не уверен на 100%, если он потерпит неудачу в вашем случае, но я по-прежнему рекомендую проверить, является ли текущая версия iOS5 или выше. Это более надежный и надежный способ убедиться, что вы не используете код, специфичный для iOS5, в более ранней версии.

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
+0

Это будет работать для 5.0, 5.1, что в моем случае будет хорошо, однако это будет работать для чего-то вроде 4.3.3 или 5.1.1? Я мог бы разобрать строку и сделать какую-то логику в худшем случае. –

+0

Свойство systemVersion - это NSString, что означает, что вы должны иметь возможность сопоставлять строки с 4.3.3 и 5.1.1. Итак, да, он должен работать и для этих версий. –

Смежные вопросы