заполнение UITableView данными JSON не будет работать - PullRequest
0 голосов
/ 22 марта 2012

У меня эта проблема.Я пытаюсь создать UITableView с данными из словаря JSON, созданного с помощью NSJSONSerialization.Я понятия не имею, с чего начать.Я пытался в течение 3 дней, но силос ничего не добился.Вот код, который я придумал:

#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 заранее

Ответы [ 2 ]

1 голос
/ 10 апреля 2012

после получения данных в NSDictionary сохраните их в NSArray, заполненном объектами NSString, которые вы хотите показать, и затем вызовите функцию [Tableview reloadData];у вас есть функция ViewDidLoad, и вы должны идти.

1 голос
/ 22 марта 2012

Вам нужно где-то хранить ваши данные (для начала хорошо подойдет NSDictionary со всем файлом json), а затем добавить UITableView, настроить его так, чтобы он указывал источник данных на ваш класс, а затем реализовать UITableViewDataSource методы , как изложено.

Затем UITableView будет запрашивать данные у этих методов по мере заполнения таблицы. Единственными двумя необходимыми методами являются tableView:numberOfRowsInSection: и tableView:cellForRowAtIndexPath:, поэтому начните с этих двух и получите данные, отображаемые в таблице, перед выполнением любой другой настройки.

...