Soy nuevo en Objective C y estoy leyendo un libro llamado "Guía Visual de inicio rápido: Objective-C", de Steven Holzner, la prensa peachpitvariables de clase estática Objective C
En el Capítulo 6: Programación Orientada a Objetos, hay una la sección de nombre uso de las variables de clase en la que escribe:
puede crear variables de clase para su uso con sus clases, pero hay un problema: cada objeto de que las acciones de la clase de la misma variable, por lo si un objeto cambia de una variable de clase, esa variable se cambia para todos los objetos. Crea variables de clase con la palabra clave static. Las variables de clase son a menudo útiles: por ejemplo, puede usar una variable de clase para realizar un seguimiento de la cantidad de objetos de una clase particular creada en un programa. Lo harás en esta tarea.
y dice que introducir el siguiente código:
#import <stdio.h>
#import <Foundation/NSObject.h>
@interface TheClass: NSObject
static int count; //error: cannot declare variable inside @interface or @protocol
+(int) getCount;
@end
...
Este código me da un error en Xcode 4:
No se puede declarar la variable dentro @interface o @protocol
¿El libro está equivocado o estoy haciendo algo mal?
El libro es totalmente erróneo, no existe el concepto de variable de clase en Objective-C. Puede declarar variables estáticas como lo haría en C, pero no pertenecen a las clases (al menos, no semánticamente). – BoltClock