Spa*_*Dog 3 c cocoa-touch objective-c ios
我有这个:
typedef struct objTag{
float x;
float y;
BOOL isUP;
} object;
Run Code Online (Sandbox Code Playgroud)
如何使对象成为这样的属性
@property (nonatomic, assign) object myObj;
Run Code Online (Sandbox Code Playgroud)
然后...
@synthesize myObj = _myObj;
Run Code Online (Sandbox Code Playgroud)
这个编译很好,但后来在代码中尝试类似的东西
self.myObj.isUP = YES;
Run Code Online (Sandbox Code Playgroud)
我收到消息"表达式不可分配"
这不起作用,因为编译器会将其编译为:
[[self getMyOj] setIsUP: YES];
Run Code Online (Sandbox Code Playgroud)
您会注意到'isUP'是C结构上的属性而不是Obj-C对象ivar.
编辑:
如果你真的想要直接操作,你需要像这样去做.
typedef struct s {
int i;
} s;
@interface Test : NSObject {
s *myS;
}
@property (nonatomic, assign) s *myS;
@end
@implementation Test
@synthesize myS;
- (id) init {
self = [super init];
myS = malloc(sizeof(s));
myS->i = 0;
return self;
}
@end
// somewhere later.
Test *t = [[Test alloc] init];
t.myS->i = 10;
Run Code Online (Sandbox Code Playgroud)
请注意,您需要在dealloc方法中清理myS.
归档时间: |
|
查看次数: |
8158 次 |
最近记录: |