об автоматическом выпуске в Xcode 4.3 - PullRequest
1 голос
/ 10 января 2012

Привет, я новичок в цели C. В старой версии Xcode, когда мы создаем новый проект, IDE генерирует объект NSAutoreleasePool, как показано ниже, чтобы разрешить автоматическое освобождение объекта

int main (int argc, char *argv[]) {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        [pool drain]; 
        return 0; }

Однако в Xcode4.3, IDE генерирует следующий код

int main (int argc, const char * argv[])

{

    @autoreleasepool {
          //insert code

    }
    return 0; 
}

С более старой версией .. я мог бы вручную освободить объект .. С новым Xcode 4.3, когда я попытался освободить объект, но функция выпуска зачеркнута... Это почему...?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 10 января 2012

В новых проектах по умолчанию включен ARC (автоматический подсчет ссылок).В ARC запрещены операции подсчета ссылок на объектах objc.

В последовательности New Project должна быть возможность использовать ручной подсчет ссылок или GC.

1 голос
/ 10 января 2012

ARC (автоматический подсчет ссылок) включен в вашем проекте. В ARC операции подсчета ссылок (например, выпуск) на объектах не допускаются. Красная линия через «релиз» просто означает, что метод устарел или больше не нужен. Система выпустит все для вас.

...