xcode beta 3 swift和FBLoginViewDelegate

随着xcode(testing版3)的新版本,我执行的类来处理在Facebookloginfacebook不再工作。 它没有使用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 

你有什么build议来避免或解决这个问题?

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

您需要将FBGraphObject协议重命名为其他类似FBGraphObjectProtocol协议,并自己编译SDK。 这种冲突也会导致SourceKitService大部分时间。

我在苹果开发论坛上写过关于这个的文章,有人分叉Facebook SDK进行修改。 如果你使用的是Cocoapods,你可以使用pod'Facebook pod 'Facebook-iOS-SDK', :git => 'https://github.com/pgaspar/facebook-ios-sdk.git'或者自己下载源代码,变化。