簡體   English   中英

如何僅為iOS 6導入社交框架?

[英]How to import Social framework only for iOS 6?

如何僅為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

鏈接器。

#import <Avaibility.h>

#if defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0
#import <Social/Social.h>
#import <Accounts/Accounts.h>
#elif defined(__IPHONE_5.0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
#import <Twitter/Twitter.h>
#import <Accounts/Accounts.h>
#else
#error Your SDK is too old ! Need at least 5.0.
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM