У меня есть класс (USER), который имеет следующие свойства (имя NSString, адрес NSString, теги NSMutableArray). Свойством тегов является NSMutableArray (TAG) - TAG - это класс, определенный как (NSNumber tagId, NSString tagName).Доступ к NSMutableArray объектов, которые находятся в другом NSMutableArray (доступ к вложенным объектам I.E.)
Я пробовал несколько различных способов доступа к tagName и tagId, однако они не увенчались успехом.
Пример кода 1 ниже:
Tag *tag = [[Tag alloc] init];
for(NSInteger n = 0; n < [thisSpotTag count]; n++)
{
NSLog(@"%@", [thisSpotTag objectAtIndex:n]);
}
Пример кода 2 ниже:
NSEnumerator *enumerator = [thisSpotTag objectEnumerator];
NSString *tname = nil;
while((tname = [enumerator nextObject]))
{
NSLog(@"%@", tname);
}
В обоих примерах, я получить адрес памяти тега, но не значение тэга и TagID ,
Как мне получить доступ к этой информации?
PS - Я использую xCode 4.2 с ARC.
Обновление на мой вопрос ниже:
Я вернулся, и попробовал несколько из предложенных исправлений ниже, однако я до сих пор не может получить данные из массива. Помните, у меня есть массив объектов, в которых каждый объект содержит массив объектов.
У меня есть этот код, например:
NSEnumerator *enumerator = [thisUser.tags objectEnumerator];
Tag *tagObj = [[Tag alloc] init];
while(tagObj = [enumerator nextObject])
{
NSLog(@"enumerated tag id:%@ name:%@", tagObj.tid, tagObj.name);
}
Я никогда не сделать его в петлю, а в коде выше ...
thisUser.tag является объектом TAG для части объекта USER , Возможно, написание того, как выглядит массив, поможет объяснить вложенность.
NSMutableArray( "this is an NSMutableArray of USER objects"
element 0 => USER Object 1
USER.name is an NSString
USER.address is an NSString
USER.tag "this is an NSMutableArray of TAG objects"
element 0 => TAG Object 1
TAG.tagId is an NSNumber
TAG.tagName is an NSString
element 1 => TAG Object 2
...etc...
element 1 => USER Object 2
...etc...
Отлично, после первоначального тестирования этот код работает! Я введу в производство после того, как поймаю некоторые zzzz. Спасибо за быстрый ответ всем! – ElasticThoughts
Peng - еще раз спасибо за предлагаемое решение моей проблемы, однако его не работает. Я обновил свой оригинальный вопрос, чтобы показать, как объекты вложены в массивы. Вы исправляете работу, идущую на 1 уровень глубиной, но не на 2 уровня. – ElasticThoughts
@CocoaNoob Вам просто нужно бросить дважды; см. мои изменения выше. – PengOne