Да, в init.dataArray объявляется с атрибутом retain.Таким образом, он сохраняет данный массив.Но так как вы распределили его, у вас есть его, и вы должны отпустить его потом.
Также сделка не является хорошей.Этот код может аварийно завершить работу при некоторых обстоятельствах (возможно, не здесь), потому что вы освобождаете объект, которым вы не владеете.