Begin Main Content
1
1

Hola, No se si esto ya lo preguntaron antes, pero ya miré y no veo nada y cada vez que busco por pregunta me sale: 500 Server Error lo siento, error del sistema. Lo que pasa es que quiero crear un NSSet para guardar unos strings que siempre van a ser iguales para todas las instancias que se creen de la clase, pero no sé cómo hacer para que ese NSSet sea de clase, porque si el getter es con +, entonces todo adentro debe ser estático, entonces en el getter me tocaría crear el NSSet con los mismos valores cada vez que llame al método, que no es lo que quiero, quiero que se inicialice una sola vez y que después sólo lo devuelva lleno.

Gracias por su ayuda.

preguntado 08 Jul '12, 17:40

inglauraisabel%40live.com's gravatar image

inglauraisab...
146151620
accept rate: 16%

editó 08 Jul '12, 17:41


para completar el ejemplo de @ferranmaylinch, aqui hay otro ejemplo:

@implementation ServerParser
static NSString *currentElement;
...
+ (NSString*)currentElement
{
return currentElement;
}
...
@end

Y esta seria su utilizacion:

[ServerParser currentElement];

El elemento estatico o propiedad de clase, la defines en la implementacion, y el acceso a la propiedad la definis en @intrface.

Yo estoy utilizando de esta manera y no me da problema.

La fuente: Stackoverflow.com: ver solucion aceptada.

Saludos iVieL

enlace permanente

respondido 08 Jul '12, 19:58

victor.lutin%40gmail.com's gravatar image

victor.lutin...
1619913
accept rate: 2%

editó 08 Jul '12, 20:00

Estaría bien poder crear constantes. No sé cómo se hace.

La solución que conozco de momento es la lazy initialization:

- (id) value {
  if (!_value) value = ....
  return _value;
}
enlace permanente

respondido 08 Jul '12, 18:59

ferranmaylinch%40gmail.com's gravatar image

ferranmaylin...
81669
accept rate: 0%

Si buscas class OR static variables objective-c en Google encontrarás información. ;)

Yo entiendo que se puede hacer así:

@implementation ...

static NSDictionary* operators;

+ (void) initialize {
  operators = ...;
}

Si alguien sabe más de esto por favor que nos guíe.

Gracias!

enlace permanente

respondido 08 Jul '12, 19:19

ferranmaylinch%40gmail.com's gravatar image

ferranmaylin...
81669
accept rate: 0%

editó 08 Jul '12, 19:21

gracias yo también tenía la misma duda ;)

enlace permanente

respondido 08 Jul '12, 22:11

macartuche%40gmail.com's gravatar image

macartuche@g...
11445
accept rate: 0%

:) que bueno que te sirvio lo aportado entre todos aqui

(08 Jul '12, 23:46) victor.lutin...

No acabo de entenderlo... ¿Cómo le das valor a la propiedad, poniendo un setter? ¿No dará problemas que el método se llame igual que la variable?

Y, ya de paso, otra pregunta: ¿cómo se definen constantes de clase? (estilo "static final" de Java).

Gracias!

enlace permanente

respondido 09 Jul '12, 18:26

ferranmaylinch%40gmail.com's gravatar image

ferranmaylin...
81669
accept rate: 0%

editó 09 Jul '12, 18:27

USTED DEBE ACCEDER AL SISTEMA PARA PODER RESPONDER O REALIZAR UNA PREGUNTA.

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Trucos del editor

  • *cursiva* o _cursiva_
  • **negrita** o __negrita__
  • enlace:[texto](http://url.com/ "Pregunta")
  • imagen?![alt texto](/path/img.jpg "Pregunta")
  • lista numerada: 1. Foo 2. Bar
  • Para añadir un salto de línea simplemente añade dos espacios donde desearías que estuviera el salto de línea.
  • se permite código HTML básico

Etiquetas de la pregunta:

×6
×2
×1

pregunta realizada: 08 Jul '12, 17:40

pregunta vista: 576 veces

última modificación: 09 Jul '12, 18:27