【发布时间】:2015-05-25 14:43:16
【问题描述】:
我目前正在尝试从服务器的文件中读取对象:
NSURLSession *session = [NSURLSession sharedSession];
NSString *string = @"http://myfile.php";
//NSLog(string); //CHECK
[[session dataTaskWithURL:[NSURL URLWithString:string]
completionHandler : ^(NSData *data,
NSURLResponse *response,
NSError *error) {
if (data.length > 0 && error == nil) {
NSError *jsonvar;
NSDictionary *greeting = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonvar];
NSLog(@"%@", greeting);
dispatch_sync(dispatch_get_main_queue(), ^{
NSDictionary *main = [greeting objectForKey:@"array"];
//self.beaconMajor.text = [NSString stringWithFormat:@"%@", [main objectForKey:@"name"]];
});
}
}] resume];
}
这是我在执行 NSLog 时得到的响应:
array = (
{
endDate = "0000-00-00";
id = 3;
name = ruben;
startDate = "0000-00-00";
},
{
endDate = "0000-00-00";
id = 4;
name = "hallo mama";
startDate = "0000-00-00";
},
{
endDate = "0000-00-00";
id = 5;
name = heyoo;
startDate = "0000-00-00";
},
{
endDate = "0000-00-00";
id = 6;
name = "Gerard Depardieu";
startDate = "0000-00-00";
}
);
谁能帮我看看如何读出这个数组的“名称”?
谢谢!
【问题讨论】:
-
仅供参考 -
main应该是NSArray,而不是NSDictionary。 -
您需要数组中的名字还是整个名称数组?如果您只需要第一次出现,那么您需要
NSDictionary *main = [[greeting objectForKey:@"array"] firstObject];如果您需要数组中不同名称的数组,您可能会发现 kvc 很有帮助:[greeting[@"array"] valueForKeyPath:@"@distinctUnionOfObjects.name"]在此处查看更多信息:nshipster.com/kvc-collection-operators