2011-03-22 21 views
5
@property (retain) int myInteger; 

Esto me genera un error porque al parecer int no se considera un objeto ... pero quiero conseguir la ventaja de crear un método captador/definidor con lo @synthetize, pero con un int. ¿Cómo podría lograrlo? ¿Hay un equivalente?Hacer el getter/setter de un int?

Respuesta

25
@property (assign) int chunkID; 

o

@property (readonly) int chunkID; 

Usted no puede retener a un tipo simple como números enteros. Sólo los objetos pueden ser retenidos ...

+5

Entonces sabrá cuál elegir, supongo ... – Macmade

+0

¿Está bien si uso ambos? ¿Tengo que poner la tecla @synthesize dos veces o algo así? – Voldemort

+0

No, para la misma propiedad, solo puede elegir si hay métodos getter/setters (primer ejemplo), o simplemente un getter (segundo ejemplo) – Macmade

9

Utilice esta:

@property (nonatomic, assign) int chunkID; 

assign es el valor por defecto así que sería bueno para dejarlo fuera.

Debe utilizar el tipo de propiedad assign porque está tratando con un tipo de objeto primitivo (es decir, int). Este tipo de tipo no se puede retener.

Solo se pueden retener/liberar las subclases de NSObject.

+0

Quizás tiene que ser atómico ... – Macmade

+0

Será un buen ejercicio para Omega para entender si lo hace. – Sylvain

+0

¿Qué es ...... no atómico? Por qué lo siento, soy una especie de novato en este idioma =/ – Voldemort

Cuestiones relacionadas