【发布时间】:2012-02-01 03:32:04
【问题描述】:
我已经到处寻找这个简单问题的答案,但没有运气。所以这里是:是否可以在 Objective-C 中访问对象的结构值而不使用点表示法,即仅使用规范的消息语法?例如,假设我们有一个为 Particle 对象定义的 CGPoint 实例变量 position:
//Particle.h
@interface Particle : NSObject {
CGPoint position
}
@property CGPoint position;
@end
以及相应的实现:
//Particle.m
#import "Particle.h"
@implementation Particle
@synthesize position;
@end
假设在其他一些 *.m 文件(比如 AppController.m)中我们有:
a_particle = [Particle alloc];
[a_particle setPosition:CGPointMake(x_val,y_val)];
那我们为什么不能使用:
[[a_particle position] x];
获取 x_val 而不是:
a_paticle.position.x;
注意到后者工作正常?还要注意
[a_particle position].x;
会起作用,但我会尽量避免用点表示法使事情变得混乱。我的直觉是结构实例变量必须使用点符号来访问其值(在本例中为 x_val 和 y_val),这是真的吗?
【问题讨论】:
标签: objective-c syntax