2011-08-15 3 views
2

Когда я NSLog массива я получаю это:Как обратиться к объекту в NSDictionary, который находится в NSArray

(
    { 
     content = "content a"; 
     id = 452069; 
     timestamp = 1313341470; 
    }, 
     { 
     content = "content b"; 
     id = 451498; 
     timestamp = 1313261505; 
    }, 
    etc... 
) 

Как Вы относитесь к конкретному индексу? Например, как бы вы получили контент для второго индекса.

Я пробовал [[myArray objectAtIndex:1]objectForKey:@"content"], но это приводит к сбоям в программе.

Также делает [myArray objectAtIndex: 1] также сбой программы.

+0

Пожалуйста, разместите любые данные из журнала о сбое. – Joe

+0

Отсутствует ошибка в консоли отладки, а в файле main.m говорится: «Тема 1: Сигнал приема программы: EXC_BAD_ACCESS». – Tom

+0

В этом массиве может быть выделен более выделенный объект. Включите зомби, а затем разместите дополнительные сведения, которые вы можете найти. http://stackoverflow.com/questions/2190227/how-do-i-set-nszombieenabled-in-xcode-4 – Joe

ответ

2

Согласно вашему правлению, ваш массив, скорее всего, выпущен. Убедитесь, что ваш массив правильно сохранен, если он использует свойство, убедитесь, что свойство установлено на copy или retain, и если вы установили его внутренне, обязательно используйте self.myArray = ...;, а не myArray = ...'.

+0

Спасибо, это была проблема. Я освобождаю объект массива дальше в коде по ошибке. – Tom

-1

Вы пытались -valueForKey:? Элемент в этом индексе не является объектом, а значением.

+0

В соответствии с вопросом массив выглядит так, чтобы содержать словари, поэтому 'objectForKey' является правильным способом доступа к значению. Недостаточно информации для полного ответа на вопрос. (Все, что хранится в NSArray или NSDictionary, должно быть объектом) – Joe

+0

Он обращается к массиву словарей. Он выбирает массив, objectAtIndex (словарь), затем значение для элемента. Хотя он все еще является объектом, ему нужно будет выбрать его значение, чтобы оно было полезным. –

+0

Единственная разница со словарем для 'valueForKey:' и 'objectForKey:' is 'valueForKey:' ограничивает использование только клавиш 'NSString'. Этот ответ просто не отвечает на вопрос о том, что все, без голосования или что-то просто давая вам знать. – Joe

Смежные вопросы