3

これは、カスタム オブジェクトを使用するために Facebook から取得したサンプル コードです。Facebookのストーリーを活用するカスタムアクションで作成しました。
Facebook ドキュメント:
https://developers.facebook.com/docs/opengraph/overview/

NSMutableDictionary<FBGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"sotd_facebook:new_zombie"
                                        title:@"Sample New Zombie"
                                        image:@"https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png"
                                          url:@"http://samples.ogp.me/191078581053171"
                                  description:@""];;

[FBRequestConnection startForPostWithGraphPath:@"me/objects/sotd_facebook:new_zombie"
                               graphObject:object
                         completionHandler:^(FBRequestConnection *connection,
                                             id result,
                                             NSError *error) {
                             // handle the result
                         }];

このオブジェクトを Facebook IOS SDK のアクションに使用する方法に興味があります。次のコードを使用しようとしましたが、FBRequestConnection の作成時にクラッシュします。

[__NSCFBoolean dataUsingEncoding:]: unrecognized selector sent to instance 0x3af00530
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFBoolean dataUsingEncoding:]: unrecognized selector sent to instance 0x3af00530'

[編集]
FBOpenGraphObject を作成し、FBRequestConnection メソッド startForPostOpenGraphObject: completionHandler を使用します。完了ハンドラ内で、結果から ID を取得し、ID を持つ別の FBOpenGraphObject に配置します。それでもクラッシュします。

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject
                                                  openGraphObjectForPostWithType:@"sotd_facebook:new_zombie"
                                                  title:@"Sample New Zombie"
                                                  image:@"https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png"
                                                  url:@"http://samples.ogp.me/191078581053171"
                                                  description:@""];



[FBRequestConnection startForPostOpenGraphObject:object
                               completionHandler:^(FBRequestConnection *connection,
                                                   id result,
                                                   NSError *error) {
                                   // handle the result
                                   // handle the result
                                   if (error)
                                   {
                                       NSLog(@"Error sharing story: %@", error.localizedDescription);
                                   }
                                   else if(result != nil)
                                   {
                                       NSLog(@"Result: %@", result);
                                       NSString* resultID = [result objectForKey:@"id"];

                                       NSMutableDictionary<FBOpenGraphObject> *newObject = [FBGraphObject openGraphObjectForPost];
                                       newObject.id = resultID;


                                       [FBRequestConnection startForPostWithGraphPath:@"me/objects/sotd_facebook:new_zombie"
                                                                          graphObject:newObject                                                                        completionHandler:^(FBRequestConnection *connection,
                                                                                        id result,
                                                                                        NSError *error) {
                                                                        // handle the result
                                                                        // handle the result
                                                                        if (error)
                                                                        {
                                                                            NSLog(@"Error sharing story: %@", error.localizedDescription);
                                                                        }
                                                                        else
                                                                        {
                                                                            NSLog(@"Result: %@", result);
                                                                        }

                                                                    }];
                                   }

                               }]; 

クラッシュログ:

2013-08-16 18:47:11.013 ZombieBlackout[3408:907] -[__NSCFBoolean dataUsingEncoding:]: 認識されないセレクターがインスタンス 0x3a118530 に送信されました 2013-08-16 18:47:11.015 ZombieBlackout[3408:907 ] *キャッチされない例外 'NSInvalidArgumentException'、理由: '-[__NSCFBoolean dataUsingEncoding:]: 認識されないセレクターがインスタンス 0x3a118530 に送信されました'

4

2 に答える 2