Литеральный NSString автовыпущен, или он должен быть выпущен?

Если вы не знаете, сколько аргументов вы можете получить, и хотите передать их всем потомкам:

class Foo(bar)
    def baz(self, arg, *args, **kwargs):
        # ... Do your thing
        return super(Foo, self).baz(arg, *args, **kwargs)

(From: Python - Самый чистый способ переопределить __init__, где после вызова super () следует использовать необязательный kwarg )

19
задан Josh Caswell 28 June 2012 в 17:31
поделиться

2 ответа

Компилятор выделил строки (формата "СТРОКА"), являются постоянными, и таким образом - сохраняют, - выпуск, и сообщения-autorelease им проигнорированы. Вы не должны выпускать или автовыпускать нечто в этом случае (но оно не причинит боль).

17
ответ дан 30 November 2019 в 03:25
поделиться

Как упомянуто в документах

http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html

Вы берете владение объекта при создании его с помощью метода, имя которого начинается с “alloc” или “new” или содержит “copy” (например, выделение, newObject, или mutableCopy), или если Вы отправляете ему сохранить сообщение. Вы ответственны за отказ от владения объектов, Вы владеете выпуском использования или автовыпуском. Любое другое время Вы получаете объект, Вы не должны выпускать его.

, Так как Вы не используете выделение, копию, и т.д. Вы не должны волноваться о выпуске объекта.

15
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: