Фреймворк Social
(SLComposeViewController
) был представлен только в iOS 6. В iOS 5 единственным встроенным подключением к любой социальной сети был Twitter и класс TWTweetComposeViewController
. iOS 6 представила фреймворк Social
с уже существующей поддержкой Twitter и новой интеграцией Facebook и Sina Weibo.
Таким образом, в iOS 5 вы не можете сделать какую-либо ссылку или вызвать SLComposeViewController
, вам нужно будет использовать условия, чтобы увидеть, какая версия (iOS 5 или 6) работает на устройстве пользователя, а затем выполнить какие-либо операции/условия.
Код if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
используется, чтобы узнать, настроил ли пользователь учетную запись Facebook в приложении «Настройки».
Да, поэтому вы добавляете платформу Twitter
для совместимости с iOS 5, кстати, убедитесь, что Social
framework установлен как необязательный.
Чтобы проверить, какая версия работает на устройстве, добавьте это в свой файл MyApp-Prefix.pch
:
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
Затем вы можете использовать его в любом классе, потому что файл префикса автоматически импортируется во все классы:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"5.0") && SYSTEM_VERSION_LESS_THAN(@"6.0")) {
NSLog(@"This is called when device is running iOS 5, 5.0.1, 5.1 etc.");
}
else if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) {
NSLog(@"iOS 6.0, 6.0.1, 6.0.2, 6.1 etc.");
}
person
MCKapur
schedule
19.01.2013