Necesito saber cómo puedo hacer método estático y propiedad estática como método estático en Java ..."clase estática en Objective C"
Gracias
Maxime
Necesito saber cómo puedo hacer método estático y propiedad estática como método estático en Java ..."clase estática en Objective C"
Gracias
Maxime
En Objective-C los son llamados métodos de clase, y que están precedidos por un signo más (+)
@interface MyClass : NSObject
+ (void)myClassMethod;
- (void)myInstanceMethod;
@end
Los métodos estáticos en C Objetivo se conocen como métodos de clase y comenzar con un signo '+', por ejemplo:
+ (void)aStaticMethod
{
// implementation here
}
Las variables estáticas se declaran con la palabra clave static
.
Gracias ... ¡está claro ahora! – Maxime
No puede tener propiedades estáticas generadas automáticamente, pero puede crear un getter y un setter métodos estáticos manualmente.
+ (NSObject *) myStaticValue;
+ (void)setMyStaticValue:(NSObject *)value;
si quiere crear propiedades estáticas significa que está creando una variable de clase. las propiedades solo se usan por ejemplo, variable. Si crea una estática significa que todos los objetos comparten la misma variable; Porque es una variable de clase.
puede declararlo en el archivo de implementación de su clase. Debe venir antes de la directiva del compilador @implementation. Pero esa variable estática solo puede usarse dentro de su clase. puede usarlo a través de sus propios métodos getter setter, no por propiedad.
Como otros han señalado, los métodos estáticos de clase tienen el prefijo un signo más (+) en la declaración, así:
@interface MyClass : NSObject
+ (void)myClassMethod;
@end
Objective-C no tiene propiedades estáticas es tan simple, y hay que saltar a través de aros de los siguientes:
Ejemplo completo:
static NSString* _foo = nil;
@interface MyClass : NSObject
+ (NSString *)getFoo;
+ (void)setFoo;
@end
// implementation of getter and setter
+ (NSString *) getFoo {
return _foo;
}
+ (void) setFoo:(NSString*) value {
if(_foo != value) {
[_foo release];
_foo = [value retain];
}
}
// optionally, you can set the default value in the initialize method
+ (void) initialize {
if(!_foo) {
_foo = @"Default Foo";
}
}
no soy un experto Obj-C, pero esto parece que funciona bien en mi código. Corrígeme si algo aquí está apagado.
Ok, entiendo por el método, pero también necesito propiedades estáticas ... – Maxime