iphone - 如何仅为iOS 6导入社交框架?

标签 iphone ios ios5 ios6

如何仅为iOS 6导入社交框架?我想为其他iOS版本禁用社交框架。目前,我正在尝试此操作,并且还尝试将FrameWork更改为可选,但无法在iOS 5.1模拟器上运行。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0)
        {
          #import <Social/Social.h>   
        }

请告诉我们如何检查和运行iOS 5和iOS6。谢谢。

最佳答案

首先:不要查询操作系统版本以猜测支持的功能,而是检查某个特定功能是否真正可用,而不是根据假设使用它。

也就是说,最新版本的iOS和工具链支持弱链接。只需检查您打算使用的类不是Nil(方法1)即可。您也可以为此使用Objective-C运行时(方法2):

// method #1 - weak linking
if ([SLRequest class] != Nil) {
    // Social.framework is available
}

// method #2 - querying the runtime
if (NSClassFromString(@"SLRequest") != Nil) {
    // Social.framework is available
}

为了使弱链接生效,应将您打算使用的框架添加为“可选”,而不是“必需”。如果您不使用Xcode或IDE,而仅使用命令行工具链,则可以通过传递以下信息来强制执行弱链接
-flat_namespace -undefined dynamic_lookup

链接器。

关于iphone - 如何仅为iOS 6导入社交框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14002304/

相关文章:

css - 在 iOS 上覆盖 overflow-x CSS 属性

iphone - 缩放实时 iPhone 相机 View 位于中心, "CGAffineTransformTranslate"不起作用

ios - jquery 移动绑定(bind)/实时点击

iOS5 - 代码中的手动 Storyboard View 选择

iphone - UILabel Inset 效果可能吗?

iphone - 如何将委托(delegate)与自动引用计数一起使用

ios - 无法附加到实时应用程序的进程 ID Xcode(来自商店)

ios - 'tm' 的定义必须在需要之前从模块 'Darwin.C.time' 导入

ios - 过渡到 iOS 5 时要注意什么

objective-c - 使用核心数据在 ios 中建立一对多关系