Saltar al contenido

¿Qué significan los signos más y menos en Objective-C junto a un método?

Posterior a de una extensa compilación de datos pudimos resolver este asunto que pueden tener algunos los usuarios. Te brindamos la solución y nuestro objetivo es resultarte de gran apoyo.

Solución:

+ es para un método de clase y - es para un método de instancia.

P.ej

// Not actually Apple's code.
@interface NSArray : NSObject 

+ (NSArray *)array;
- (id)objectAtIndex:(NSUInteger)index;
@end

// somewhere else:

id myArray = [NSArray array];         // see how the message is sent to NSArray?
id obj = [myArray objectAtIndex:4];   // here the message is sent to myArray

// Btw, in production code one uses "NSArray *myArray" instead of only "id".

Hay otra pregunta que trata sobre la diferencia entre los métodos de clase y de instancia.

(+) para métodos de clase y (-) para método de instancia,

(+) Métodos de clase: –

Son métodos que se declaran como static. El método se puede llamar sin crear una instancia de la clase. Los métodos de clase solo pueden operar en miembros de clase y no en miembros de instancia, ya que los métodos de clase desconocen los miembros de instancia. Los métodos de instancia de la clase tampoco se pueden llamar desde un método de clase a menos que se llamen en una instancia de esa clase.

(-) Métodos de instancia:-

Por otro lado, requiere que exista una instancia de la clase antes de que se pueda llamar, por lo que se debe crear una instancia de una clase utilizando la nueva palabra clave. Los métodos de instancia operan en instancias específicas de clases. Los métodos de instancia no se declaran como static.

¿Como crear?

@interface CustomClass : NSObject

+ (void)classMethod;
- (void)instanceMethod;

@end

¿Cómo utilizar?

[CustomClass classMethod];

CustomClass *classObject = [[CustomClass alloc] init];
[classObject instanceMethod];

+ los métodos son métodos de clase, es decir, métodos que no tienen acceso a las propiedades de una instancia. Se usa para métodos como alloc o métodos auxiliares para la clase que no requieren acceso a variables de instancia

– los métodos son métodos de instancia – se relacionan con una sola instancia de un objeto. Usualmente se usa para la mayoría de los métodos en una clase.

Consulte la Especificación de idioma para obtener más detalles.

Comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *