Импортировать заголовок для нескольких релизов ios? - PullRequest
0 голосов
/ 23 января 2012

Мне просто интересно, нужно ли мне проверять текущую версию ios при импорте моего заголовка. У меня есть приложение, которое использует OS5 Framework. Так что, если я хочу, чтобы мое приложение работало в прежнем выпуске, нужно ли мне условно импортировать мой заголовок? Или я должен управлять этим в реализации?

Например: если я хочу использовать Twitter / Twitter.h, но хочу, чтобы мое приложение работало в 4.0. такое решение:

Что-то вроде:

#if CURRENT_OS > __IPHONE_5_0
import <Twitter/Twitter.h>
#endif

или

#import <Twitter/Twitter.h>
... 
- (void) myMethod
{
  NSComparisonResult r = [[[UIDevice currentDevice] systemVersion] compare:@"5.0"];
    if ( r >= 0 ) 
    {
        //do the thing
    }
    else
    {
       // do the workarround

    }
}

Заранее спасибо за помощь.

ш, Smazimute

1 Ответ

1 голос
/ 23 января 2012

Первое решение действует только во время компиляции.Это означает, что не стоит проверять версию iOS во время выполнения.Вы можете использовать его, чтобы различать две цели в одном проекте (например, бесплатную и платную версию вашего приложения).

Второе решение действует во время выполнения, поэтому я считаю, что это лучшее решение для выполнения чего-либо наконкретная версия iOS, но, к сожалению, она бесполезна при импорте фреймворков.Чтобы проверить версию iOS, используйте это:

[[UIDevice currentDevice] systemVersion]

Если ваша цель - просто импортировать конкретный фреймворк, не поддерживаемый в более старой iOS, то единственное решение, которое у вас есть, это слабо связать это.

Взгляните на: http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html

...