1

これは私をバナナに駆り立てています!iOSのplacesPickerからローカルの場所を選択した後、アプリでユーザーのfacebookフィードにメッセージを公開し、facebook Placeにチェックインしようとしています。

テストではほとんどすべてが機能しています。つまり、NSMutableDictionary のすべての postParams に型文字列値を渡すだけで、完全にポストされます。元:

self.postParams =
    [[NSMutableDictionary alloc] initWithObjectsAndKeys:
     @"I am doing XYZ", @"message",
     @"123456abc",@"tags",
     @"123456xyz,@"place",
     nil];

上記の postParams は、フィードに発行されたときに完全に機能し、メッセージを表示し、「場所」ID にチェックインして、「タグ」でユーザー ID を使用していることを示します。問題は、Facebook SDK の placePicker から実際に Place ID を取得していることです。ピッカーのセットアップが完了し、完全に機能していますが、ハードコードされた @"123456xyz" を選択した場所の ID に置き換える方法がわかりません。

これは現在私がそこに持っているものです:

self.postParams =
        [[NSMutableDictionary alloc] initWithObjectsAndKeys:
         @"I am doing XYZ", @"message",
         @"123456abc",@"tags",
         self.selectedPlace.id,@"place",
         nil];

self.selectedplace.id には、場所の ID が正常に含まれています。コンソールで debug/NSLog を使用して印刷すると、値が正確に保持されます。しかし、場所を選んでこれを公開しようとすると、「エラー:ドメイン= com.facebook.sdk、コード= 5」が表示されます

self.selectedPlace の定義と合成方法は次のとおりです。

@property (strong, nonatomic) NSObject<FBGraphPlace> *selectedPlace;

...

@synthesize selectedPlace = _selectedPlace;

...

[placePicker presentModallyFromViewController:self
                                     animated:YES
                                      handler:^(FBViewController *sender, BOOL donePressed) {
                                          if (donePressed) {
                                              self.selectedPlace = placePicker.selection;
                                          }
                                      }];

私の質問をまとめると: self.selectedPlace.id に格納されているこのプレイス ID を postParams ディクショナリに取得して、正常に解釈してユーザーのフィードに公開するにはどうすればよいですか?

また、事前に全員に警告する必要があります...私は独学でまだ学習中です.コードを見て、それが何をするかを理解し、それを書くことはできます...私は用語が得意ではありません. &言語のいくつかについて議論/理解する...笑だから、回答やコメントでそれを心に留めておくと、大いに役立つでしょう:)ありがとう、そして私はstackoverflow newbシェルから抜け出し、ここでコミュニティから離れていきます。

4

1 に答える 1

0

次のように、initWithObjectsAndKeys を使用して post パラメータをまとめて設定するのではなく、それを理解しました。

self.postParams =
    [[NSMutableDictionary alloc] initWithObjectsAndKeys:
     @"I am doing XYZ", @"message",
     @"123456abc",@"tags",
     self.selectedPlace.id,@"place",
     nil];

渡すパラメーターごとに個別の辞書を作成し、setValue: forKey: を使用してそれぞれを最終的な postParams に設定するだけです。

[fbPostParams setValue:self.selectedPlace.id forKey:@"place"];
于 2012-10-20T04:35:12.337 に答える