随着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
你有什么建议可以避免或解决这个问题吗?
答案 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'
或自行下载源代码并进行更改。