Objective c 如何获取';OSX上SLRequest返回的NSCFDictionary中的?
我向facebook提出以下请求:Objective c 如何获取';OSX上SLRequest返回的NSCFDictionary中的?,objective-c,facebook,macos,Objective C,Facebook,Macos,我向facebook提出以下请求: SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET U
SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:[NSURL URLWithString:@"https://graph.facebook.com/fql"]
parameters:[NSDictionary dictionaryWithObject:@"SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())" forKey:@"q"]];
[facebookRequest setAccount:_facebookAccount];
[facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
if(!error){
id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
NSLog(@"%@", [json class]);
//NSCFDictionary. How can i get the data that's inside this?
}else{
NSLog(@"error fb");
}
}];
关于如何检索NSCFDictionary中的数据有什么想法吗?我尝试了
[json valueforKey…]
但没有使用NSDictionary的-objectForKey:
方法:
id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
if ([json isKindOfClass:[NSDictionary class]]) {
NSDictionary *dict = (NSDictionary*)json;
for (NSString *key in dict) {
id object = [dict objectForKey:key];
NSLog(@"The object for key \"%@\" is: %@", key, object);
}
}
顺便说一句,我们不需要花太多时间就可以看出NSCFD字典可以像NSCFD字典一样对待。这里有一个这样的问题可以解释:一旦你知道了这一点,你就可以通过查看NSDictionary的文档轻松地找出如何处理它。使用NSDictionary的
-objectForKey:
方法:
id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
if ([json isKindOfClass:[NSDictionary class]]) {
NSDictionary *dict = (NSDictionary*)json;
for (NSString *key in dict) {
id object = [dict objectForKey:key];
NSLog(@"The object for key \"%@\" is: %@", key, object);
}
}
顺便说一句,我们不需要花太多时间就可以看出NSCFD字典可以像NSCFD字典一样对待。这里有一个问题可以解释这一点:一旦你知道了这一点,你就可以通过查看NSDictionary的文档轻松找到如何处理它。谢谢你!这是我的工作。奇怪的是,
NSLog
只记录了1次,而它记录了所有内容。我使用此代码获取数据的第一个“uid”、“pic_square”和“name”集NSDictionary*dict=(NSDictionary*)[NSJSONSerialization JSONObjectWithData:responseData选项:0错误:nil];对于(NSString*key in dict){id object=[dict objectForKey:key];NSLog(@“key的对象是:%@,[objectobjectatindex:0]);}
谢谢!这是我的工作。奇怪的是,NSLog
只记录了1次,而它记录了所有内容。我使用此代码获取数据的第一个“uid”、“pic_square”和“name”集NSDictionary*dict=(NSDictionary*)[NSJSONSerialization JSONObjectWithData:responseData选项:0错误:nil];对于(NSString*key in dict){id对象=[dict objectForKey:key];NSLog(@“key的对象是:%@,[object objectAtIndex:0]);}