Можете ли вы описать разницу в соглашении об именах между методом, который возвращает объект, выделенный для вызывающего объекта (и который вызывающий должен освободить), и методом, который возвращает объект автоматического освобождения?
Вопрос о соглашениях об именах для Cocoa/Objective-C для iPhone (в отношении выпуска и автоматического выпуска)
Ответы (4)
Согласно это:
- методы, которые начинаются с -allocXXX или -newXXX или содержат слово «копировать», будут/должны возвращать выделенный объект
- любой метод, который не соответствует правилу № 1, будет / должен возвращать автоматически выпущенный объект
person
Yahya Cahyadi
schedule
20.10.2010
А создать? Этот префикс сохраняется или автоматически освобождается?
- person jjxtra; 08.09.2011
Согласно документации Apple, префикс create в методе target-c означает, что вы НЕ несете ответственности за выпуск результата, тогда как create в функции CF... означает, что вы несете ответственность за выпуск результата. Странно ... developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/
- person jjxtra; 19.09.2011
Ссылка на документ Apple: developer.apple.com/ библиотека / mac / documentation / Какао / Концептуальный /
- person Jakub C; 02.04.2015
Методы, возвращающие сохраненный объект (который вызывающий должен освободить), должны включать слово copy
, new
, mutableCopy
или alloc
(как в паре _5 _ / _ 6_). Все остальное должно возвращать автоматически выпущенный объект.
person
mipadi
schedule
20.10.2010
Если в имени метода есть alloc, new, copy или create, по соглашению он вернет новый сохраненный объект.
person
kubi
schedule
20.10.2010