Присвоение значений: разница между свойствами и переменными класса? - PullRequest
1 голос
/ 22 марта 2010

Я заметил, что редко использую свойства из-за того, что мне редко требуется доступ к переменным моего объекта вне моего класса;)

Поэтому я обычно делаю:

NSMutableArray *myArray; // not a property !

Мойвопрос в том, что даже если я не объявляю myArray как свойство, iphone все равно сохраняет, если я

myArray = arrayPassedToMe;

Я так думаю, но я просто хотел подтвердить;)

Любые мысли приветствуются!

Готье

Ответы [ 2 ]

2 голосов
/ 22 марта 2010

Если вы не объявите свойство с помощью 'retain', то удержание не будет выполнено. Как правило, предпочтительно использовать средства доступа к свойствам (во всех случаях это значительно упрощает управление памятью), однако вы можете выполнить ручное сохранение как таковое:

myArray = [otherArray retain];
0 голосов
/ 22 марта 2010

Просто чтобы добавить ответ Кевина, в этом случае вам также необходимо убедиться, что любой существующий объект, на который в данный момент указывает myArray, освобожден, прежде чем назначить ему новое значение, что означает:

[myArray release];
myArray = [otherArray retain];

Когда вы обращаетесь к переменным класса через объявленные свойства, все это с сохранением / освобождением памяти выполняется автоматически, что значительно облегчает вашу жизнь.

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