如何将NSString值传递给connectionDidFinishLoading

时间:2014-09-02 05:52:54

标签: ios objective-c json uitableview didselectrowatindexpath

我有Json url.i知道获取JSON url的数据。但现在我有一个问题。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"index number %d", indexPath.row);
    passingDealDec=[titleDecarray objectAtIndex:indexPath.row];
    NSLog(@"passingDealDec%@",passingDealDec);
    // you can see selected row number in your console;
}

我需要传递DelaDec(NSString)传递给connectionDidFinishLoading方法我试过这样但是它不起作用

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if ([getDealsDec isEqualToString:passingDealDec]){
            NSLog(@"firstpassingDealDec%@",passingDealDec);
            NSString *geting2 =[diction valueForKey:@"dealimage"];
            NSData *getdata2=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting2]];
            NSLog(@"good day2 %@",getdata2);
            UIImage   *singleimage=[UIImage imageWithData:getdata2];

            NSLog(@"GetingSingleImage%@",singleimage);

            //[imagesarray addObject:singleimage];

            NSString  *Dealtitles =[dealPosted valueForKey:@"deaTitle"];
            NSLog(@"Singletitles^^^%@",Dealtitles);

            NSString *DealPrice=[dealPosted valueForKey:@"price"];
            NSLog(@"DealPrice^^^DealPrice%@",DealPrice);
        }
}

请告诉我我的代码有什么问题。首先告诉我didSelectRowAtIndexPath方法调用connectionDidFinishLoading.It是否可能。

感谢高级。

2 个答案:

答案 0 :(得分:0)

如果您知道ConnectionDidFinishLoading在didSelectAtIndexPath之后触发 然后将DealDec声明为全局(实例)变量,因此将变量设置为didSelectAtIndexPath中的值,该值将保持原样,您可以在Later函数中访问它。

-(void)viewDidLoad{
 NSString *DealDec;
}

P.S-如果您之前不知道触发了哪个方法,请在每个方法中放置两个断点,运行应用程序并观察哪个方法首先被执行。

希望这有帮助

[编辑]

didSelectIndexPath{
NSURLConnection *myURL;
 Cell.myLabel.text = myURL; //taking that some label text in the cell class has a URl and u want to fire it when u click on it.
[self.connectionDidFinishLoading:myURL]; 
}

这将解决问题

答案 1 :(得分:0)

你可以通过多种方式做到这一点。

1.您可以通过

调用此Web服务
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  1. 您将数据保存在

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection

  2. 这个检查可以在tableView:didSelectRowAtIndexPath

    中完成
    if ([getDealsDec isEqualToString:passingDealDec]){
    }