2013-05-29 24 views
0

您好,我正在嘗試按需加載數據。第一次加載數據後,我調用以下方法。UITableView數據需求

-(void)carregaDados2 
{ 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 


    NSURL *url2 = [[NSURL alloc] initWithString:[@"http://localhost:3000/json.aspx?ind=12&tot=12" stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]]; 

    NSURLRequest *request = [NSURLRequest requestWithURL:url2]; 
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSError *jsonParsingError = nil; 

    NSMutableData *data2; 
    data2 = [[NSMutableData alloc] init]; 
    [data2 appendData:response]; 
    NSMutableData *dt = [[NSMutableData alloc] init]; 
    [dt appendData:data]; 
    [dt appendData:data2]; 
    news = [NSJSONSerialization JSONObjectWithData:dt options:nil error:nil]; 
    [tableViewjson reloadData]; 
    NSLog(@"Erro: %@", jsonParsingError); 
} 

但是我的tableview是空白的。

我在做什麼錯?


我真的不知道還能做些什麼。

現在我改變了我的代碼,我不能把我的第二個指數的NSMutableArray在我的UITableView

-(void)carregaDados2 
{ 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 


    NSURL *url2 = [[NSURL alloc] initWithString:[@"http://localhost:3000/json.aspx?ind=12&tot=12" stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]]; 

    NSURLRequest *request = [NSURLRequest requestWithURL:url2]; 
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSError *jsonParsingError = nil; 

    NSMutableData *myData = [[NSMutableData alloc]init]; 
    [myData appendData:response]; 


    NSMutableArray *news2; 

    news2 = [NSJSONSerialization JSONObjectWithData:myData options:nil error:&jsonParsingError]; 
    NSLog(@"LOG: %@", news2); 
} 
+1

你可以發佈你的tableView的數據源和委託方法。 –

+1

你有沒有分配任何東西到你的表視圖的dataSource屬性?另一件事是發送同步請求不是一個好主意。 –

+0

你上鉤/ setDelegate /打印你的數據等... –

回答

2

從它你砸在一起的兩個JSON響應緩衝區,並試圖把它解析爲一個長相JSON消息。

[dt appendData:data]; 
[dt appendData:data2]; 
news = [NSJSONSerialization JSONObjectWithData:dt options:nil error:nil]; 

這是行不通的。

例如,如果data[{"x"="a","y"="b"}]data2[{"x"="c","y"="d"}]然後dt將具有值[{"x"="a","y"="b"}][{"x"="c","y"="d"}]這是一個無效的JSON消息。

我建議解析JSON消息到NSArrays分開組合這兩個數組。


組合兩個數組是基本的NSArray/NSMutableArray操作。

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSError *error = nil; 

NSArray *updatedNews = [NSJSONSerialization JSONObjectWithData:response options:nil error:&error]; 

// If news is of type NSArray… 
news = [news arrayByAddingObjectsFromArray:updatedNews]; 

// If news is of type NSMutableArray… 
[news addObjectsFromArray:updatedNews]; 

[tableViewjson reloadData]; 
+0

我真的不知道還有什麼要做。 現在我改變了我的代碼,我不能把我的第二個索引NSMutableArray放在我的UITableView中。 – leedream

+0

@lereamream我更新了我的答案來演示組合數組。 –