Получить все свойства объекта из массива делегатов - PullRequest
0 голосов
/ 15 мая 2011

Я успешно извлекаю массив из моего делегата, однако я изо всех сил пытаюсь получить все свойства объектов, поэтому в моем AppDelegate:

    arrayOne = [[NSMutableArray alloc] init];
    NSMutableArray *tempArray1 = [self myArray];
// Add names to arrayOne
    for (MyInfo *info in tempArray1) {
        [arrayOne addObject:info.name];
    }

Затем я получаю это в моем MainView:

    cell.textLabel.text = [delegate.currentlyUsedArray objectAtIndex:row];

Это прекрасно работает, но myArray содержит другие свойства, такие как: info.age и info.height - как мне передать их другому textLabel? Должен ли я использовать тот же подход, что и выше, или есть более эффективный способ?

Ответы [ 3 ]

0 голосов
/ 18 мая 2011

Почему вы не можете просто добавить info в массив.

for (MyInfo *info in tempArray1) {
    [arrayOne addObject:info];
}

и позже, где вы его устанавливаете.

MyInfo *info = (MyInfo*)[delegate.currentlyUsedArray objectAtIndex:row];
cell.textLabel.text = info.name;

// Other fields should also accessible directly such as info.age and info.height.
0 голосов
/ 18 мая 2011

После ответа Запко ваш код в MainView будет выглядеть так, чтобы получить доступ к различным свойствам объекта MyInfo в свойстве myArray вашего объекта делегата:

cell.textLabel.text  = [(MyInfo *)[delegate.myArray objectAtIndex:row] name];
cell.ageLabel.text   = [(MyInfo *)[delegate.myArray objectAtIndex:row] age];
cell.heigtLabel.text = [(MyInfo *)[delegate.myArray objectAtIndex:row] height];
0 голосов
/ 18 мая 2011

medley, Вы можете сделать метод appDelegate myArray общедоступным и получить ваши информационные значения именно там, где вам это нужно, в данном случае в методе cellForRowAtIndexPath:.

...