Сложность записи содержимого массива в представление таблицы.IOS

Программируем под IOS
Ответить
Anonymous
 Сложность записи содержимого массива в представление таблицы.

Сообщение Anonymous »

Я изо всех сил пытался выполнить задачу, которая включает в себя получение значений из json (из ссылки), запись их в массив, а затем вставку в мою строку, сказав

cell.textLabel.text=[myArray objectAtIndex:indexPath.row];


метод получения

-(void)getData:(NSData *) responseData{
NSError *error;
NSDictionary *json=[NSJSONSerialization JSONObjectWithData:responseData option:kNilOptions error:&error[;
myArray=[json objectForKey:@"cars"];
NSLog(@"cars %@",myArray);//returns array values just fine
}


NSLog возвращает мой массив идеально,
однако, когда я говорю

cell.textLabel.text=[myArray objectAtIndex:indexPath.row];


он имеет значение null (я думаю, это потому, что этот код выполняется перед методом getData, НО даже если я запишу URL-адрес в массив В методе загрузки, зарегистрирую его там и получу свой массив, когда я попытаюсь присвоить его ячейке, я снова получу ноль.
Было бы очень здорово, если бы я смог это исправить. Спасибо
добавленный код

Отредактировано: Добавлено код, предыдущая проблема решена, но теперь пытаюсь отобразить значения TypesArray (словарь) в моей метке ячейки, или мне следует просто преобразовать JSon в формат массива.
Данные Json — это {"regions":{"region":"House", но я не могу форматировать их как массив

#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
#define kmyURL [NSURL URLWithString:@"http://www.site.com/region/index.php"]

- (void)viewDidLoad
{

[super viewDidLoad];
NSURL *myURL =[NSURL URLWithString:@"http://www.site.com/region/index.php"];

NSError *error=nil;
NSString *str=[NSString stringWithContentsOfURL:myURL encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",str);
// sqlResults=[NSArray arrayWithContentsOfURL:myURL];

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

-(void)fetchedData:(NSData *)responseData{

NSError *error;
NSDictionary *json=[NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

myarr=[json valueForKey:@"regions"];
NSLog(@"regions: %@",myarr);
TypesArray =[[NSDictionary alloc]initWithDictionary:json];
NSLog(@"json %@",TypesArray);
[self.tableView reloadData];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}
NSLog(@"Sql Results: %@",sqlResults);
NSLog(@"regions out: %@",myarr);
NSLog(@"Typesb: %@",TypesArray);

cell.textLabel.text=[TypesArray valueForKey:@"region"]; //Nothing is being written to cell here
return cell;
}


Данные выглядят следующим образом:

{"regions":{"region":"Island"}}


Подробнее здесь: https://stackoverflow.com/questions/219 ... -tableview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»