当我像印度这样动态点击特定国家时如何获取价值
Posted
技术标签:
【中文标题】当我像印度这样动态点击特定国家时如何获取价值【英文标题】:how do get values when i click on particular country dynamically like this is showing of india 【发布时间】:2017-05-30 06:07:27 【问题描述】:如何从json
获取价值?
这是第一个 api
NSString *urlAsString = [NSString stringWithFormat:@"http://api.population.io/1.0/countries/?format=json"];
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet];
NSString *encodedUrlAsString = [urlAsString stringByAddingPercentEncodingWithAllowedCharacters:set];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithURL:[NSURL URLWithString:encodedUrlAsString]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
NSLog(@"RESPONSE: %@",response);
NSLog(@"DATA: %@",data);
if (!error)
// Success
if ([response isKindOfClass:[NSHTTPURLResponse class]])
NSError *jsonError;
NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
if (jsonError)
// Error Parsing JSON
else
// Success Parsing JSON
// Log NSDictionary response:
arr = [jsonResponse valueForKey:@"countries"];
NSLog(@"%@",arr);
[self.tableView reloadData];
else
//Web server is returning an error
else
// Fail
NSLog(@"error : %@", error.description);
] resume];
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return arr.count;
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
return 1;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor yellowColor];
cell.textLabel.text = [arr objectAtIndex:indexPath.row ];
return cell;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
NSString *str = [arr objectAtIndex:indexPath.row] ;
ViewController1 *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"ViewController1"];
vc.str1 = [arr objectAtIndex:indexPath.row];
[self.navigationController pushViewController:vc animated:YES];
这是第二个
NSString *urlAsString = [NSString stringWithFormat:@"http://api.population.io/1.0/wp-rank/1952-03-11/male/India/on/2001-05-11/?format=json"];
NSString *encodedString = [urlAsString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithURL:[NSURL URLWithString:encodedString]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
NSLog(@"RESPONSE: %@",response);
NSLog(@"DATA: %@",data);
if (!error)
// Success
if ([response isKindOfClass:[NSHTTPURLResponse class]])
NSError *jsonError;
NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
if (jsonError)
// Error Parsing JSON
else
// Success Parsing JSON
// Log NSDictionary response:
// _str2 = [jsonResponse valueForKey:@"dob"];
/// NSLog(@"%@",_str2);
NSLog(@"%@",jsonResponse);
当我点击特定国家/地区时,我应该从该国家/地区获取数据
【问题讨论】:
你的问题不是很清楚 当我点击特定国家/地区时,我使用一个 api 转到这个,它也应该从此 api 中选择同一个国家 @swativerma 你从哪里挑选国家? NSString *urlAsString = [NSString stringWithFormat:@"api.population.io/1.0/countries/?format=json"]; @swativerma - 当我们点击partcilur国家时显示代码 【参考方案1】:您需要使用您在didSelect
方法中设置的str1
属性来创建您的URL
,因此将India
替换为str1
的值。
NSString *urlAsString = [NSString stringWithFormat:@"http://api.population.io/1.0/wp-rank/1952-03-11/male/%@/on/2001-05-11/?format=json", self.str1];
注意:您需要为您的财产提供正确的名称,因此最好将str1
更改为selectedCountry
或其他名称。
【讨论】:
@swativerma 欢迎朋友 :)以上是关于当我像印度这样动态点击特定国家时如何获取价值的主要内容,如果未能解决你的问题,请参考以下文章