Вопрос о соглашениях об именах для Cocoa/Objective-C для iPhone (в отношении выпуска и автоматического выпуска)

Можете ли вы описать разницу в соглашении об именах между методом, который возвращает объект, выделенный для вызывающего объекта (и который вызывающий должен освободить), и методом, который возвращает объект автоматического освобождения?


person Cocoa Dev    schedule 20.10.2010    source источник


Ответы (4)


Согласно это:

  1. методы, которые начинаются с -allocXXX или -newXXX или содержат слово «копировать», будут/должны возвращать выделенный объект
  2. любой метод, который не соответствует правилу № 1, будет / должен возвращать автоматически выпущенный объект
person Yahya Cahyadi    schedule 20.10.2010
comment
А создать? Этот префикс сохраняется или автоматически освобождается? - person jjxtra; 08.09.2011
comment
Согласно документации Apple, префикс create в методе target-c означает, что вы НЕ несете ответственности за выпуск результата, тогда как create в функции CF... означает, что вы несете ответственность за выпуск результата. Странно ... developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ - person jjxtra; 19.09.2011
comment
Ссылка на документ Apple: developer.apple.com/ библиотека / mac / documentation / Какао / Концептуальный / - person Jakub C; 02.04.2015

Методы, возвращающие сохраненный объект (который вызывающий должен освободить), должны включать слово copy, new, mutableCopy или alloc (как в паре _5 _ / _ 6_). Все остальное должно возвращать автоматически выпущенный объект.

person mipadi    schedule 20.10.2010

Вы ознакомились с документацией Apple? ?

person BlueDog    schedule 20.10.2010

Если в имени метода есть alloc, new, copy или create, по соглашению он вернет новый сохраненный объект.

person kubi    schedule 20.10.2010