Как я могу ссылаться на объект и редактировать его свойства из NSMutableArray? - PullRequest
1 голос
/ 14 января 2010
NSMutableArray *persons = [ [ NSMutableArray alloc ] init ];

Как я могу редактировать атрибуты человека, не делая что-то вроде:

Person *p = [ [ Person alloc ] init ];
p = [ persons objectAtIndex:0 ];
p.name = "James Foo";
[ persons replaceObjectAtIndex: ([ persons count ] - 1 )  withObject:p];

Я хотел бы сделать что-то вроде:

[ persons objectAtIndex:0 ].name = "James Foo";

Ответы [ 2 ]

6 голосов
/ 14 января 2010

Но вы можете. Вы должны привести общий идентификатор в свой тип, хотя:

((Person *) [person objectAtIndex: 0]). Name = "Джеймс Фу";

2 голосов
/ 15 января 2010

Этот пример кода также имеет утечку памяти; вам не нужно выделять новый экземпляр лица в этом случае; Вы можете просто сделать следующее, если вы не хотите ничего разыгрывать:

Person *p = [persons objectAtIndex:0];
p.name = @"James Foo";

и вам не нужно повторно добавлять его в массив, поскольку получение объекта в месте не удаляет его из массива само по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...