Переменные экземпляра установлены на ноль по умолчанию в Objective C?

Как со всей разработкой, размер экрана является главным, таким образом, я предложил бы 24-дюймовую iMac, если Ваши золотые фрагменты билета, которые далеко или Mac, мини-с большим (вероятно, не-Apple), контролируют, если это не делает.

38
задан Peter Hosey 24 November 2009 в 03:59
поделиться

3 ответа

Переменные экземпляра инициализируются значением 0 перед запуском вашего инициализатора ..

56
ответ дан 27 November 2019 в 03:37
поделиться

Да, ivars всегда инициализируются значением 0 / nil / NULL / NO / и т. Д. .

Однако, если это поможет вам понять, что происходит, сделайте это . Влияние на производительность незначительно. Вам не нужно этого делать, но это не вызовет никаких проблем.

11
ответ дан 27 November 2019 в 03:37
поделиться

Я считаю, что хорошей практикой является всегда устанавливать эти ivars на nil в методе init . Таким образом, вы абсолютно уверены, что ваш вызов release в деструкторе не вызовет проблем.

Если окажется, что Objective-C автоматически устанавливает их в nil , и по какой-то причине вы обнаруживаете, что у вас есть узкое место в скорости, которое можно улучшить, удалив эти назначения (что очень маловероятно), тогда вы можете беспокоиться об их удалении. А пока установите их все на nil и спите легче :)

обновление: Б.Дж. Гомер и Чак указали, что ivars будет автоматически обнуляться , так что теперь дело доходит до выбора стиля.

0
ответ дан 27 November 2019 в 03:37
поделиться