【发布时间】:2009-07-09 05:43:47
【问题描述】:
我有一个包含 C 风格结构的 Objective-C 类。我需要调用一个 C 函数,将指针传递给该对象成员(也称为属性)。对于我的生活,我无法弄清楚如何获取这个 C 结构的地址。使用传统的& 运算符来获取地址,我得到一个 LValue 编译器错误。
typedef struct _myStruct
{
int aNumber;
}MyStruct, *pMyStruct;
@interface MyClass : NSObject {
MyStruct mystruct;
}
@property (readwrite) MyStruct myStruct;
@end
以下代码导致编译器错误:
MyClass* myClass = [[MyClass alloc] init];
MyStruct* p = &(myClass.myStruct);
如何获得指向myClass 对象的myStruct 成员的指针?
【问题讨论】:
-
我不知道这是否可行,但请尝试 MyStruct* p = (MyStruct*)&(myClass.myStruct.aNumber);
-
& 运算符采用左值。方法调用的结果是一个右值。
标签: objective-c lvalue declared-property address-operator