Social
框架 ( ) 仅在 iOS 6 中引入。SLComposeViewController
在 iOS 5 中,与任何社交网络的唯一本地连接是 Twitter 和TWTweetComposeViewController
类。iOS 6 引入了Social
具有预先存在的 Twitter 支持和新的 Facebook 和新浪微博集成的框架。
因此,在 iOS 5 上,您实际上无法对 进行任何引用或调用SLComposeViewController
,您需要使用条件来查看用户设备正在运行哪个版本(iOS 5 或 6),然后进行任何操作/条件。
该代码if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
用于查看用户是否在设置应用程序中设置了 Facebook 帐户。
是的,所以你添加了Twitter
iOS 5 兼容性的框架,顺便确保Social
框架设置为可选。
要检查设备正在运行的版本,请将其添加到您的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.");
}