1

Facebook SDK を使用してユーザーのプロファイル データを迅速に取得していますが、FBRequestConnection.startWithGraphPath:completionHandler: を呼び出すと迅速にクラッシュします。

ログの関連部分だと思うものを残します

1.  While type-checking 'profile' at /Users/fratelli/Documents/Projects/Wink/Wink/OAuthFacebookSession.swift:118:14
2.  While type-checking expression at [/Users/fratelli/Documents/Projects/Wink/Wink/OAuthFacebookSession.swift:139:9 - line:142:9] RangeText="FBRequestConnection.startWithGraphPath(
            self.readPermissions(),
            completionHandler: completionHandler
        )"
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254

私はすでにバグレポートを記入しました。現在、Objective-c を使用する以外に、これを回避する方法はありません。私が知りたいのは、同じ効果を達成するために試すことができる他の FB SDK メソッドがあるかどうかです。

コードは次のとおりです。

    var completionHandler = {
        connection, result, error in
    } as FBSessionStateHandler;

    // Request the profile info
    FBRequestConnection.startWithGraphPath(
        "me?fields=birthday,gender,first_name,last_name,name_format,picture",
        completionHandler: completionHandler
    );
4

2 に答える 2

2

これを試して:

var completionHandler = {
    connection, result, error in
} as FBRequestHandler;

// Request the profile info
FBRequestConnection.startWithGraphPath(
    "me?fields=birthday,gender,first_name,last_name,name_format,picture",
    completionHandler: completionHandler
);

FBRequestConnection.startWithGraphPath は、FBSessionStateHandler ではなく、FBRequestHandler を想定しています

于 2014-09-11T12:00:59.080 に答える
0

最終的に、Objective-c を使用する必要がありました。だから私は OAuthFacebookWrapper.h ファイルを作成しました

#import <Foundation/Foundation.h>
#import <FacebookSDK/FacebookSDK.h>

@interface OAuthFacebookWrapper : NSObject

+ (void) startWithGraphPath:(NSString *)graphPath completionHandler:(FBRequestHandler)handler;

@end

次に OAuthFacebookWrapper.m

#import "OAuthFacebookWrapper.h"

@implementation OAuthFacebookWrapper

+ (void) startWithGraphPath:(NSString *)graphPath completionHandler:(FBRequestHandler)handler
{
    [FBRequestConnection startWithGraphPath: graphPath completionHandler: handler];
}

@end

以前と同じ引数でそのメソッドを呼び出すと機能します。

于 2014-07-09T13:38:36.963 に答える