xcode beta 3 swift和FBLoginViewDelegate

时间:2014-07-15 13:52:36

标签: ios xcode swift facebook-ios-sdk

随着xcode(beta 3)的新版本,我在facebook上处理facebook登录所实现的课程已经不再适用了。它无法在它工作之前使用FBLoginViewDelegate。当我用来扩展一个类时会发生这种情况:

class LoginVC: MyViewController,MyDetailUsable,FBLoginViewDelegate

我安装了最后的facebook sdk, 万一我忘了一些东西,这是我为项目定义的设置:

MyConnection/MyConnection-Bridging-Header.h  : #import <FacebookSDK/FacebookSDK.h>

//:configuration = Debug
SWIFT_OBJC_BRIDGING_HEADER = MyConnection/MyConnection-Bridging-Header.h

//:configuration = Release
SWIFT_OBJC_BRIDGING_HEADER = MyConnection/MyConnection-Bridging-Header.h

//:completeSettings = some
SWIFT_INSTALL_OBJC_HEADER = YES
//:configuration = Debug
CLANG_ENABLE_MODULES = YES
//:configuration = Release
CLANG_ENABLE_MODULES = YES
//:completeSettings = some
CLANG_ENABLE_MODULES = YES

你有什么建议可以避免或解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

Facebook SDK有一个名为FBGraphObject的协议,也有一个名为相同的分类。在Swift中,协议和类的名称空间是统一的,因此您不能使用冲突的名称。因此,您无法使用预编译的Facebook库。

您需要将FBGraphObject协议重命名为FBGraphObjectProtocol之类的其他协议,并自行编译SDK。这种冲突在大多数情况下也会导致SourceKitService。

我在Apple开发论坛上写过这篇文章,并且有人分叉Facebook SDK进行更改。如果您正在使用Cocoapods,您可以使用pod 'Facebook-iOS-SDK', :git => 'https://github.com/pgaspar/facebook-ios-sdk.git'或自行下载源代码并进行更改。