Да, выглядит правильно для меня.
В зависимости от того, как объявлены ваши свойства, у вас могут возникнуть некоторые проблемы с памятью.
Если в ваших свойствах задано сохранение в качестве атрибута, то при назначении им копии массива будет сохранено значение 2 для объекта, а не для предполагаемого 1.
Например.
self.myProperty = [myArray mutableCopy];
mutableCopy возвращает вновь выделенный объект с сохраненным счетчиком, равным единице. Вызывающий объект владеет этим объектом и несет ответственность за его освобождение. Затем вы присваиваете это свойству, которое сохраняет его, увеличивая количество сохраняемых объектов до 2. Объект будет утек, когда владелец будет освобожден, поскольку свойство будет освобождено только один раз.
Решение состоит в том, чтобы выпустить изменяемую копию после присвоения и сохранения ее для свойства, подобного этому.
self.myProperty = [myArray mutableCopy];
[self.myProperty release];
В качестве альтернативы вы можете автоматически разблокировать результат mutableCopy. Однако, кажется, есть некоторые противоречия, связанные с использованием автоматического выпуска на iPhone. Лично я не вижу проблемы с этим, если он не используется в узком цикле, который повторяется много раз за короткий промежуток времени.
self.myProperty =[[myArray mutableCopy] autorelease];