Как проверить, поддерживает ли мое приложение IOS IOS 3+?И что-то об анонимной функции - PullRequest
1 голос
/ 24 ноября 2011

Я новичок в разработке IOS, иногда я использую функцию, но игнорирую ее Doc. Итак, я могу использовать некоторые функции, которые поддерживаются только в IOS 4 или даже IOS 5, но я хочу поддерживать IOS 3+.

Есть ли способ проверить, поддерживает ли мое приложение IOS 3+? Я не хочу проверять построчно, спасибо.

И кстати, анонимная функция, такая как void (^ funcName) (NSString *), является функцией target-c, верно? Так что поддерживается на всех версиях IOS, верно?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Измените «Deployment Target» на 3.x, чтобы увидеть, не поддерживаются ли какие-либо методы, которые вы используете, в этой версии.

Однако, не заменяет тестирование на 3.x; так что либо найдите устройство 3.x, либо отключите поддержку этой версии. Кроме того, блоки (описанная вами «анонимная функция») доступны только в iOS 4 и выше.

Если вы хотите написать разные наборы кода для разных целей версий, вы можете использовать директивы препроцессора:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
    ... 5.x code here ...
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
    ... 4.x code here ...
#else
    ... 3.x code here ...
#endif
1 голос
/ 24 ноября 2011

Попробуйте запустить приложение на устройстве под управлением 3.x

с помощью анонимных функций. Имеете ли вы в виду блоки вроде:

[self performSomeBlock:^(NSString *smth) {
    NSLog(@"%@", smth);
}];

или вы просто имеете в виду определения типа c?я забыл законное имя)

void doSomething(void *(*func)(NSString *)) {
...
}
...