13

私は 3.1 iOS SDK の scrumptios facebook 開発者チュートリアルを行っています。Facebook からプロファイル名を表示することができましたが、FBProfilePictureView には画像が表示されません。

これが ioutlet のコードです

@property (strong, nonatomic) IBOutlet FBProfilePictureView *useProfileImage;

これが私が写真を表示するために使用したものです

self.useProfileImage.profileID = user.id;

ラベルに表示することで、画像の profileid 変数を変更したことを確認しました。

プロジェクトを最初に実行したときに、このエラーが発生しました

「2012-05-18 04:04:11.620 Scrumptious[6548:f803] Interface Builder ファイルの不明なクラス FBProfilePictureView。」

[FBProfilePictureView class]; アプリデリゲートの「applicationdidfinishlaunching:withoptions」に追加することで、FBチュートリアルが提案した方法で解決しました。

写真が表示されない理由は何か分かりますか?

チュートリアルへのリンク

4

7 に答える 7

21

didFinishLaunching のアプリ デリゲート メソッドの最初の行としてを追加するのは[FBProfilePictureView class];、私にはちょっとハックに思えます。

SDK 内の HelloFacebookSample を確認してください。4 行のコメントは次のとおりです。

// If you have not added the -ObjC linker flag, you may need to uncomment the following line because
// Nib files require the type to have been loaded before they can do the wireup successfully.
// http://stackoverflow.com/questions/1725881/unknown-class-myclass-in-interface-builder-file-error-at-runtime
// [FBProfilePictureView class];

フラグを追加してみましたが、-ObjCうまくいきました。

于 2013-05-07T04:21:47.923 に答える
3

これを解決するには、アプリ デリゲートの application:didFinishLaunchingWithOptions: メソッドの最初の行としてこれを追加します。

[FBProfilePictureView クラス];

于 2013-05-06T09:48:32.310 に答える
2

FacebookのWebページに記載されているように、[FBProfilePictureViewクラス]を配置する必要があります。didFinishLaunchingのアプリデリゲートメソッドの最初の行として。(彼らのサンプルコードにはこれがありませんが、それでも機能することに注意してください。私の場合、それなしでは機能しません。

サイズを変更したUIViewオブジェクトを作成し、UIViewからFBProfilePictureViewまでのクラスを選択しました。これにより、プログラムとIB間の接続が切断されるため、再接続する必要があります。画像が表示されないというエラーは、オブジェクトがIBOutletアイテムに接続されていないことが原因です。カットアンドペーストが機能するかどうかはわかりませんが、UIViewからオブジェクトを作成し、IBを介して手動でクラスを変更しました。

[FBProfilePictureViewクラス]なし; エラーが発生します。

正しく行われた場合、XIBを表示すると、オブジェクトウィンドウ/リストに、FBProfilePictureViewの代わりにボタンとラベルとともに「プロファイル画像ビュー」が表示されます。Facebookのプロフィール写真が表示されます。

于 2013-02-01T08:22:08.307 に答える
1

私も同じ問題を抱えてる。私の解決策は、xib ファイルの「File Inspector」で「Use autolayout」オプションのチェックを外すことです。「File Inspector」を開くには、xib ファイルを開いた後に cmd+option+1 を押します。

編集1:別の解決策を見つけてください。

プロファイル画像ビューに幅の制約と高さの制約を設定してみてください。このチュートリアルは役に立ちます。

于 2012-11-14T03:17:47.857 に答える
0

彼ら(fb開発者フォーラム)は、アプリデリゲートのdidLunchメソッドにそのように貼り付けたと言いました

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];



        [FBProfilePictureView class];



        // Create a LoginUIViewController instance where the login button will be
        LoginUIViewController *loginUIViewController = [[LoginUIViewController alloc] init];

        // Set loginUIViewController as root view controller
        [[self window] setRootViewController:loginUIViewController];

        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }

交換するだけ

    [FBProfilePictureView class]; 

with these commented lines it will work 

    // Override point for customization after application launch.

    // Load the FBProfilePictureView
    // You can find more information about why you need to add this line of code in our troubleshooting guide
    // https://developers.facebook.com/docs/ios/troubleshooting#objc
    [FBProfilePictureView class];

それは魔法のように機能します:)

于 2014-02-06T06:49:04.897 に答える
0

同じ問題、xcode4.5.1 ios6 がありました。これを修正するには: IB で FBprofilepictureview の自動レイアウトの使用のチェックを外し、ビューへの「サブビューの自動サイズ変更」のチェックも外します

于 2012-12-05T10:02:15.520 に答える