当我像印度这样动态点击特定国家时如何获取价值

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 欢迎朋友 :)

以上是关于当我像印度这样动态点击特定国家时如何获取价值的主要内容,如果未能解决你的问题,请参考以下文章

如何从多数组中获取价值? [复制]

谷歌放置特定城市和国家的地点

如何将印度国家与地区划分为r?

如何动态导入作为json数据的反应模块

如何使用国家代码或国家名称获取国家拨号代码?

如何根据国家/地区的IP地址重定向网站