В чем магия NSAutoreleasePool в Objective-C / cocoa framework?

Я обнаружил, что пример инфраструктуры Objective-C / cocoa имеет следующий код.

int main()
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // Create an array
    NSArray *month = [NSArray arrayWithObjects:@ ... nill];

    [pool drain];
}
  • Q1: В чем заключается магия (Почему мне нужно иметь Код NSAutoreleasePool?)? Какая магия происходит между блоком NSAutoreleasePool и дренажным блоком пула ? Я вижу, что сам выпускать * месяц не нужно. Причина в том, что он находится внутри блока NSAutoreleasePool и стока пула ?

  • Q2: В Xcode мне уже предоставлена ​​функция main (). В этом случае, как я могу использовать NSAutoreleasePool и дренаж пула ?

Например:

int main(int argc, char *argv[])
{
    //NSAutoreleasePool *pool = [[[NSAutoreleasePool] alloc] init];
    return NSApplicationMain(argc,  (const char **) argv);
}
6
задан prosseek 28 February 2011 в 04:43
поделиться