esto es una especie de pregunta para principiantes así que por favor tengan paciencia conmigo.¿Es posible tener miembros de clase "solo de implementación"?
Tengo una clase que hace uso de una biblioteca de terceros (oniguruma, si eso importa). Quiero que los métodos de biblioteca estén completamente decorados por mí mismo, de modo que pueda cambiar la implementación subyacente de mi clase en cualquier momento. Algo así como:
// MyClass.h
@interface MyClass : NSObject ...
- (int) doSomething;
// MyClass.m
#import "some_library.h"
@implementation MyClass
- (int) doSomething
{
//call library's specific stuff
}
Hasta ahora, todo bien, pero ahora estoy necesidad de utilizar una variable de instancia en MiClase que tiene algún tipo de biblioteca definida (una estructura declarada en "some_library.h"). Por supuesto que puedo importar la biblioteca de derecho en la sección de interfaz:
//MyClass.h
#import "some_library.h"
@interface MyClass : NSObject {
some_library_t blah;
}
- (int) doSomething;
@end
pero esto es exactamente lo que estoy tratando de evitar - hacer que los usuarios de MiClase consciente de sus detalles de implementación.
¿Puedo de alguna manera "ocultar" tipos específicos de biblioteca de la interfaz de mi clase? ¿Cuál es la práctica estándar?
Mi mal, fijo. Me he acostumbrado demasiado a la conveniencia de C++ para el uso de 'struct'. –