2012-08-01 20 views

Respuesta

9

Ésta es una nueva colección literal disponible en el compilador que se incluyen con Xcode 4.4 y por encima de

@[object1, object2]; 

es equivalente a

[NSArray arrayWithObjects:object1, object2, nil]; 

así que sí, es un objeto autoreleased, si es necesario esto a ser retenido, puede hacerlo

myRetainedArray = [@[object1, object2] retain]; 

this question tiene un ir od descripción de todos los literales nuevos

+1

y el hombre es verdad impresionante! necesitaba un poco de color púrpura en mi código lol –

+0

si necesito crear un objeto que no se libera, no puedo usar el literal anterior? –

+0

todavía puede usarlo, simplemente conserve la matriz después – wattson12

0

Es el nuevo literal del compilador llvm para crear una matriz. El compilador cambia esto a:

NSArray *array = [NSArray arrayWithObjects: object1,object2,nil]; 

Devuelve un objeto liberado automáticamente.

Una búsqueda de Google criado más información:

http://clang.llvm.org/docs/ObjectiveCLiterals.html

+1

"El compilador cambia esto a:" No, lo cambia para usar 'arrayWithObjects: count:'. – user102008

Cuestiones relacionadas