[NSArray arrayWithContentsOfFile:]; возвращает автоматически освобожденный массив, который потребует сохранения, если вы хотите, чтобы он зависал дольше, чем конец метода.
Обратите внимание, как в объявлении свойства указано «сохранить». Это означает, что любое self.property = x; звонки, которые вы делаете, сохраняют передаваемый вами объект.
Так что то, что ты там делаешь, правильно. Просто не забудьте сделать self.property = nil; в вашем методе dealloc.
Установка свойства для nil освободит старый объект и установит указатель на nil, что является правильным способом сделать это.