2011-04-26 5 views
12

Duplicar posibles: Código
Where do I have to declare static variables?¿Diferencia entre declarar variable estática dentro y fuera del contexto de implementación en Objective C?

que he visto como

@implementation ClassA 

static NSString *str = nil; 

..... 

@end 

, así como

static NSString *str = nil; 

@implementation ClassA 

..... 

@end 

¿Cuál es la dife rencia si un var estática se declara dentro del contexto @implmentation vs fuera

+0

Pls refiere esta cuestión de forma http://stackoverflow.com/questions/1662903/where-do-i-have-to-declare-static-variables – visakh7

+0

@ 7KV7 si no va a agregar cualquier contenido de * su propio *, se prefiere un comentario –

Respuesta

16

No hay diferencia entre

@implementation ClassA 

static NSString *str = nil; 

..... 

@end 

y

static NSString *str = nil; 

@implementation ClassA 

..... 

@end 

Funcionan de la misma manera ...

Las variables estáticas ayudan a dar la clase objec t más funcionalidad que solo la de una "fábrica" ​​que produce instancias; puede llegar a ser un objeto completo versátil en su propio derecho . Se puede usar un objeto de clase para coordinar las instancias que crea , dispensar instancias de listas de objetos ya creados, o administrar otros procesos esenciales para la aplicación. En el caso en que necesita un solo objeto de una clase particular , puede poner todo el estado del objeto en variables estáticas y usar solo métodos de clase. Esto ahorra el paso de asignar e inicializar una instancia.

Cuestiones relacionadas