Вы должны освобождать или автоматически освобождать объекты, чтобы все объекты выполняли их - () dealloc's. Когда процесс завершается, ОС очищает всю память, занятую процессом, но не может очистить некоторые другие ресурсы (мьютексы, семафоры, может быть что-то еще), потому что они являются объектами ядра и могут использоваться различными процессами. Таким образом, ОС не может знать, следует ли удалять эти объекты после завершения начального процесса. Разработчик должен очистить такие объекты сам, и это обычно делается в методах dealloc соответствующих объектов.