2012-03-02 4 views
1

であることを知ったとき、私は私はそれを識別することができますので、(私はFBRequestオブジェクトを設定ObjectForKeyはいつも私は値が1

self.permissionRequest = [facebook requestWithGraphPath:@"me/permissions" andDelegate:self]; 

を使用して、ユーザーのアクティブなアクセス許可を取得するための呼び出しを行ったnullを返すか0デリゲートメソッド)、私は呼んでデリゲートで

 if (request == self.permissionRequest) { 
     DLog(@"Result: %@", result); 

    } 

そして私は、アクティブなアクセス許可のうち、素敵なプリントを得る:

Result: { data = ( { bookmarked = 1; "create_note" = 1; email = 1; installed = 1; "photo_upload" = 1; "publish_stream" = 1; "share_item" = 1; "status_update" = 1; "video_upload" = 1; } ); }

これまでのところすべてです。

ただし、「publish_stream」がオンかオフかを判断したいだけです。私は

id *key = [result objectForKey:@"publish_stream"]; 
int keyInt = [key integerValue]; 
DLog(@"Key: %i", keyInt); 

を呼び出す場合、私は 'NULL' を取​​得

NSString *key = [result objectForKey:@"publish_stream"]; 
    DLog(@"Key: %@", key); 

を呼び出す場合

私は常に0

を取得します。

私は何が間違っていますか? publish_streamキーの値を取得できないのはなぜですか?私は同じ結果でvalueForKey:を使ってみました。

非常に簡単な解決策が必要ですか?

+0

キーは、4番目のコードブロックの 'id *'ではなく 'id'でなければなりません。問題ではなく、問題です。 – zmccord

+0

こんにちは、ソーシャルフレームワークを使用して同じ種類の機能を実装したいと思います。どうすればそれを達成できますか? – iPhone

答えて

3

あなたの結果辞書には、値が別の辞書であるdataという1つのキーしかなく、他のすべてがその中に入っていると思います。

あなたはまた、別のエラーを持っている

[[result objectForKey:@"data"] objectForKey:@"publish_stream"]; 

を試してみてください:あなたはidが既にポインタである

id *key 

を書きました。ダブルポインタを必要としない限り、その後に*を置くべきではありません。

+0

素晴らしい、ありがとう!注目に値する唯一のことは、それがvalueForKey:@ "publish_stream"でなければならないということです。それ以外の場合、それは大騒ぎを引き起こします。 – Smikey

関連する問題