Facebook SDK v4&解析(斯威夫特)

时间:2015-04-11 04:15:44

标签: ios facebook parse-platform facebook-sdk-4.0 parsefacebookutils

我正在尝试使用ParseFacebookUtilsv4& FacebookSDK v4 ..经过多次试验,我设法将错误减少到1。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    Parse.setApplicationId("###",
        clientKey: "###")

    PFFacebookUtils.initializeFacebookWithLaunchOptions(launchOptions)

}

在这部分中,完全从Parse's iOS Docs - Facebook Setup复制(昨天为FBSDKv4更新),我收到一个错误:

'PFFacebookUtils.Type' does not have a member named 'initializeFacebookWithLaunchOptions'

当我查看ParseFacebookUtilsv4的完整文档时,说出警告:此类支持官方Facebook iOS SDK v4.0 +,并且仅在iOS上可用。〜,我看到了没有任何名为' initializeFacebookWithLaunchOptions' 的课程;而是' initializeFacebookWithApplicationLaunchOptions:'

但是,当我将AppDelegate.swift / didFinishLaunchingWithOptions部分更改为:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    Parse.setApplicationId("###",
        clientKey: "###")

    PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)

}

...我收到一条错误消息说'在预期返回的函数中错过了返回' Bool'。然后我尝试添加两个

 return true /* AND */ return false // at the end of the function; 

...我遇到9次崩溃,例如: i.stack.imgur.com/o989R.png

我完全陷入困境,并且不知道如何解决这个问题。

8 个答案:

答案 0 :(得分:6)

[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; //works

[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions]; //does not compile or work

上面第一行对我有用。似乎他们忘记更新文档。

答案 1 :(得分:1)

您应该转到PFFacebookUtils.h头文件中的PFFacebookUtils.h并更改:

(void)initializeFacebookWithApplicationLaunchOptions:(NSDictionary *)launchOptions;

要:

(void)initializeFacebookWithApplicationLaunchOptions :( PF_NULLABLE NSDictionary *)launchOptions;

它会起作用! 参考https://developers.facebook.com/bugs/1462780714012820/

答案 2 :(得分:0)

根据您的错误日志,我认为您缺少依赖项,或者您在此处添加了依赖项,但您尚未将它们包含在项目中。

我认为您的Facebook SDK未包含在构建目标中,因为缺少的符号具有FB前缀。

答案 3 :(得分:0)

找到我的答案: 我不得不在我的桥接头中导入FBSDKLoginKit(最近更新的Parse Doc中没有提到)。

所以我的桥接标题如下:

    #import <FBSDKCoreKit/FBSDKCoreKit.h>
    #import <FBSDKLoginKit/FBSDKLoginKit.h>
    #import <ParseFacebookUtilsV4/PFFacebookUtils.h>
    #import <Parse/Parse.h>
    #import <Bolts/Bolts.h>

答案 4 :(得分:0)

我遇到了同样的问题,并且必须实施上述两项建议才能让我的应用无问题地运行。

首先,我从FB SDK添加了FBSDKLoginKit并导入它。(感谢senty)

#import <FBSDKLoginKit/FBSDKLoginKit.h>

然后我换了:

[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions];

使用:

[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];

希望我的回答很有帮助。

答案 5 :(得分:0)

我遇到了与FB SDK v4 + Parse v1.7.5 SDK相同的问题。

最后,我在我的项目中解决了这个问题。 Parse空白项目有一个错误。不要使用Parse空白项目。

https://www.parse.com/docs/downloads/这是官方下载页面,有两种类型的下载(v 1.7.5),即SDK或Blank Project,用于启动项目。

它只适用于Parse SDK文件+您的新项目!请仅导入SDK。

答案 6 :(得分:0)

尝试删除ParseFacebookUtils(只保留ParseFacebookUtilsV4),这会产生一些冲突。

答案 7 :(得分:0)

如果您使用的是FB SDK v4 + Parse v1.7.5 SDK,

我只有:

#import <ParseFacebookUtilsV4/PFFacebookUtils.h>

在我的桥接标题中。我的AppDelegate.swift文件现在包含:

import Parse
import Bolts
import FBSDKCoreKit
import FBSDKShareKit
import FBSDKLoginKit

我可以成功运行我的应用程序。