我已调用使用
检索用户的有效权限self.permissionRequest = [facebook requestWithGraphPath:@"me/permissions" andDelegate:self];
(我设置了FBRequest对象,以便我可以在委托方法中识别它)
在代表中我打电话:
if (request == self.permissionRequest) {
DLog(@"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);
我总是得到0.
如果我打电话
NSString *key = [result objectForKey:@"publish_stream"];
DLog(@"Key: %@", key);
我得到'null'。
我做错了什么?为什么我不能获取publish_stream键的值?我也尝试过使用valueForKey:结果相同。
必须有一个非常简单的解决方案吗?
答案 0 :(得分:3)
我认为你的结果字典只有一个键data
,其值是另一个字典,其他一切都在其中。
尝试
[[result objectForKey:@"data"] objectForKey:@"publish_stream"];
你还有另一个错误:你写了
id *key
id
已经是一个指针。除非你想要一个双指针,否则你不应该在它后放*
。