2012-01-09 1 views
1

Привет Я новичок в Objective C. В старой версии Xcode, когда мы создаем новый проект, в IDE генерирует объект NSAutoreleasePool, как показано ниже, чтобы Автосп объектоб авто выпуска в Xcode 4.3

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

     [pool drain]; 
     return 0; } 

Однако в Xcode 4.3, IDE генерирует код ниже

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

{ 

    @autoreleasepool { 
      //insert code 

    } 
    return 0; 
} 

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

спасибо.

+1

Возможно, ваш проект включен ARC. Если это так, вам не нужно ничего отпускать, система сделает это за вас. –

+1

Кто-то еще берет на себя бремя освобождения ваших объектов. Вы должны чувствовать себя лучше с этим. Есть много других новых функций, таких как ARC. См. Примечания к выпуску xcode. –

ответ

1

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

+0

Спасибо, что очень много ... Это очень хорошая новость .. надеюсь, компилятор C сделает это тоже ..: D – user1139747

3

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

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