我已經搜遍了這個簡單問題的答案,沒有運氣。因此,這裏是:是否可以在不使用點符號的情況下訪問Objective-C中的Object的結構值,即僅使用規範消息語法?例如,讓我們說,我們有一個CGPoint實例變量,位置,對於一個粒子對象定義:我是否必須在Objective C中使用點符號來訪問結構值?
//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),這是真的嗎?
謝謝,這是我懷疑的,但是試圖避免用點來混淆我的代碼。 – 2012-01-03 00:23:46
這不是混亂,它只是C語言。 – sbooth 2012-01-03 01:55:44