Вопрос

Когда я делаю NSArray используя +[NSArray arrayWithObjects:], он копирует эти объекты?Если я освобожу объекты после добавления их в массив, возникнут ли у меня проблемы?

Это было полезно?

Решение

Нет, он их не копирует.Оно сохраняет их.Да, вы можете безопасно освободить объекты после добавления их в массив.

Документы, как всегда, сформулируйте это очень четко:

Массивы поддерживают строгие ссылки на свое содержимое — в среде управляемой памяти каждый объект получает сообщение сохранения перед добавлением его идентификатора в массив и сообщение освобождения, когда он удаляется из массива или когда массив освобождается.Если вам нужна коллекция с другой семантикой владения объектом, рассмотрите возможность использования вместо этого ссылки CFArray, NSPointerArray или NSHashTable.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top