尝试在ios 5.1.1上使用Social.framework会导致我的应用程序崩溃

Sig*_*ini 1 crash frameworks ios

我的应用程序收到错误消息并在iOS 5.1模拟器上崩溃,因为这个iOS 5.1.1不支持"社交"框架.

有没有办法解决这个问题,并在iOS 6之前的版本上使用它?

Cli*_*udo 7

社交框架是iOS 6 Only功能.它不适用于运行iOS 6.0之前的设备.你有两个选择.如果您的应用是新的,则可以要求iOS 6或更高版本.

如果您的应用程序已经存在一段时间并且您需要支持早于6的iOS版本,则可以在运行时测试框架是否存在,如下所示:

if(NSClassFromString(@"SLComposeViewController") != nil) {
    // The social Framework exists
else
    // Social Framework does NOT exist.
Run Code Online (Sandbox Code Playgroud)

注意以下对您的评论的回应:
使用版本号检查功能是否存在被认为是不好的设计.建议的方法是检查功能本身是否存在.

您在评论中提到的代码是您为什么要测试该功能而不是版本的完美示例.@"5.1.1"的floatValue是5.1而@"5.1.2"的floatValue也是5.1!如果您要查找的功能不在5.1.1但IS在5.1.2中,您的代码将不会检测到它并错误地认为该功能不存在.不要这样做.使用我上面概述的技术.

  • 您还应该在项目>目标>摘要选项卡>链接的框架和库下将框架标记为可选 (10认同)
  • 只是确保没有人错过MaxGabriel的评论 - 如果您定位iOS6以下的任何内容,您需要将链接的社交框架标记为可选. (2认同)