2011-11-28 14 views
15

Si tengo este código,ARC equivalente a la liberación automática?

+ (MyCustomClass*) myCustomClass 
{ 
    return [[[MyCustomClass alloc] init] autorelease]; 
} 

Este código garantías el objeto de regresar se autoreleased. ¿Cuál es el equivalente de esto en ARC?

Respuesta

20

No hay equivalente en ARC, ya que no es necesario que lo haga usted mismo. sucederá detrás de las escenas y no se le permite hacerlo usted mismo.

usted utiliza simplemente -

+ (MyCustomClass*) myCustomClass 
{ 
    return [[MyCustomClass alloc] init]; 
} 

Sugiero que usted pueda ver la introducción en el ARC 2011 WWDC, ya que muy simple cuando usted lo consigue.

Mira aquí: https://developer.apple.com/videos/wwdc/2011/

Y como el hombre en la película dice -

usted no tiene que pensar en ello más (casi)

+4

Tenga en cuenta que lo que suceda dependerá de cómo nombre su método, sin embargo. – Thilo

+1

Eso es trow y es por eso que agregué el casi en la última línea. Realmente creo que la conferencia de la WWDC es excelente y explica todos los problemas principales con ARC. – shannoga

+1

Tal vez tengo que saber cada detalle de lo que sucede debajo de eso * casi * :) – Eonil

7

Al compilar con ARC, simplemente lo escribe como:

+ (MyCustomClass *)myCustomClass 
{ 
    return [[MyCustomClass alloc] init]; 
} 

y el compilador/tiempo de ejecución se encargará del resto por usted.

+1

+1 para responder realmente la pregunta – JeremyP

+0

el tiempo de ejecución no tiene nada que ver con ARC, todo es magia de compilador – DanZimm

+0

@DanZimm no - el tiempo de ejecución es también en el trabajo. por ejemplo: es el tiempo de ejecución el que permite que la propiedad de los objetos se transfiera a través de los marcos. http://clang.llvm.org/docs/AutomaticReferenceCounting.html#runtime – justin

Cuestiones relacionadas