2012-03-21 101 views
0

我有這個問題。我試圖用NSJSONSerialization製作的JSON字典中的數據構建一個UITableView。我不知道從哪裏開始。我已經嘗試了3天,但筒倉已經沒有任何成就。這是我想出了代碼:用JSON數據填充UITableView將不起作用

#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 
#define kJsonURL [NSURL URLWithString: @"http://rs-hosting.nl/panel/serverstatus_json.php"] 

#import "ViewController.h" 



@implementation ViewController 

- (void)viewDidLoad 
{  
    [super viewDidLoad]; 

    dispatch_async(kBgQueue, ^{ 
     NSData* data = [NSData dataWithContentsOfURL:kJsonURL]; 
     [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; 
    }); 
} 

- (void)fetchedData:(NSData *)responseData { 
    NSError* error; 
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

    NSDictionary *clients = [json objectForKey:@"announcements"]; 
    NSArray *announcements = [clients objectForKey:@"announcement"]; 
    NSDictionary* announcement = [announcements objectAtIndex:1]; 

} 
- (void)viewDidUnload { 

    [super viewDidUnload]; 
} 
@end 

我能夠在標籤的單一視圖顯示在標籤的內容,但我不知道如何惱火的JSON所有數據一張桌子。有人可以幫我治療嗎?

SDK:5.1 OSX:10.7.3 XCODE:4.3.1

TNX提前

回答

1

你需要在一些地方保存你的數據(即保持與NSDictionary的整個JSON文件是罰款一開始),然後添加一個UITableView,將其設置爲將其數據源指向您的類,然後按照概述實現UITableViewDataSource methods

UITableView將在填充表格時從這些方法請求數據。只有兩個必需的方法是tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:,所以從這兩個開始,並在進行任何其他定製之前將數據顯示在表上。

+0

通過將其存儲在別的地方,你的意思就像定義一個字典instaan​​de變量? – Roeliee 2012-03-21 21:07:27

+0

@ user1226041當然,這是一個很好的第一選擇。 – Nick 2012-03-21 21:15:04

1

在NSDictionary中獲取數據後,將其保存在NSArray中,並用你想要顯示的NSString對象填充,然後調用函數[Tableview reloadData];在你ViewDidLoad函數和你很好去。