Tengo una clase Objective-C que contiene una estructura C-style. Necesito llamar a una función C pasando un puntero a este miembro de objeto (propiedad a.k.a.) Por mi vida, no puedo entender cómo obtener la dirección de esta estructura C. Usando el operador tradicional &
para obtener la dirección, obtengo un error del compilador LValue.Obtener la dirección de una propiedad Objective-c (que es una estructura C)
typedef struct _myStruct
{
int aNumber;
}MyStruct, *pMyStruct;
@interface MyClass : NSObject {
MyStruct mystruct;
}
@property (readwrite) MyStruct myStruct;
@end
Los código siguiente produce un error de compilación:
MyClass* myClass = [[MyClass alloc] init];
MyStruct* p = &(myClass.myStruct);
¿Cómo puedo obtener un puntero a la myStruct
miembro del objeto myClass
?
No sé si esto funcionará, pero pruebe MyStruct * p = (MyStruct *) & (myClass.myStruct.aNumber); –
El operador & toma un lvalor. El resultado de una llamada a un método es un valor r. – Chuck