Первый использует ARC, который реализован в iOS5 и выше для управления памятью.
На втором этапе вы управляете своей собственной памятью и создаете пул авто-релиза для обработки каждого автоматического релиза, который происходит внутри вашей основной функции.
Итак, прочитав немного о том, что нового в Obj-C с iOS5, выясняется, что:
@autoreleasepool {
//some code
}
работает так же, как
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// some code
[pool release];
с той разницей, что последний выдаст ошибку на ARC.
EDIT
Первый использует ARC или нет.