2014-06-06 27 views
5

我嘗試在IOS Swift項目中實現Facebook SDK,但我無法包含SDK。 此外,我不知道如何將這種Objectiv-C段斯威夫特翻譯:swift中的Instanciate FBLoginView類

[FBLoginView class]; 

有人能幫助我嗎?

回答

11

,我發現最簡單的方法是添加一個新的「Objective-C的文件」到您的項目。

應該問你「你想配置一個Objective-C橋接報?」選擇

兩個文件將被添加到您的項目,Objective-C的文件和 「(項目名稱)-Bridging-Header.h

刪除您添加的空Objective-C的文件並打開(項目名稱)-Bridging-Header.h

添加您爲Facebook SDK進口到文件(使用Objective-C的風格的進口),例如:

// 
// Use this file to import your target's public headers that you would like to expose to Swift. 
// 

#import <FacebookSDK/FacebookSDK.h> 

保存頭文件,現在您可以在swift代碼中訪問Facebook SDK。 你不需要將「導入FacebookSDK」添加到你的swift文件中。例如:

import UIKit 

class LoginViewController: UIViewController { 
    var fbl: FBLoginView = FBLoginView() 
    // etc... 
+0

中的objC代碼我不想添加一個新的「Objective-C文件」,而是一個框架。我遵循[Facebook文檔](https://developers.facebook.com/docs/ios/getting-started/)並將「.framework」文件放到我的項目中。我可以創建我的視圖並添加類「FbLoginView」,但我無法實例化FBLoginView類。 – cappie013

+1

對,你需要添加一個Objective-C文件的唯一原因是創建Bridging-Header文件(我相信這也會在你的項目中設置一個標誌)。 Objective-C文件不是必需的,它只是創建Bridging頭文件並在項目中設置標誌的快捷方式。然後將導入添加到橋接頭允許您訪問項目中的FBLoginView。您仍然需要在您的項目中擁有Facebook SDK框架。 – DennyFerra

+0

工作就像一個魅力!感謝您的幫助 !我會嘗試找到一個更簡單的方法來創建橋文件。 – cappie013

3

你想和班級做什麼?

在迅速您可以.self引用類,像這樣:

FBLoginView.self 
+0

根據[Facebook的SDK文檔(https://developers.facebook.com/docs /facebook-login/ios/v2.0),我需要加載FBLoginView類。但似乎這個框架沒有被適當地包含在內。 – cappie013

+0

「FacebookSDK.framework」出現在我的「鏈接框架和庫」中,但它仍然不起作用 – cappie013

+0

「FBLoginView.self」到底做了什麼? –

0

與來自Facebook最新更新相信,在頭文件中的進口:

#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h>