Во-первых, я новичок в Objective-C. :)
Я узнал, что все, что начинается с alloc
, new
и copy
, дает вызывающей стороне право собственности на возвращаемый объект. Это относится и к методам класса? Я предполагаю, что да, и недавний сбой в одном из моих модульных тестов, кажется, подтверждает это. В Руководстве по программированию расширенного управления памятью Apple ничего не говорится о том, есть ли разница между методами класса и экземпляра.
Обновление То, что я имею в виду, применимо и к методам класса, на самом деле является «обратным». Например, NSDecimalNumber имеет метод класса с именем +decimalNumberWithDecimal:
. Кажется, он возвращает автоматически выпущенный объект (если я его выпускаю явно, вскоре после этого происходит сбой). Оглядываясь назад, ответ на мой вопрос очевиден, поскольку руководство Apple называет new
и alloc
методами передачи прав собственности, и все они являются методами класса. Извините, что отнял ваше драгоценное время. :)