0
我在我的頭文件中定義像這樣如何在Objective C中的同一個類中使用訪問器?
@property (assign) bool connectivity_N;
@property (assign) bool isConnected_N;
我在執行文件中的一些屬性我有一個init和像這樣
@implementation Map
@synthesize connectivity_N;
@synthesize isConnected_N;
一個初始化設置初始值等的合成屬性所以
-(id) init
{
if((self=[super init]))
{
//initialise default properties
self.connectivity_N=NO;
self.isConnected_N=NO;
}
return self;
}
我遇到了一個錯誤,指出錯誤:訪問未知'connectivity_N'類的方法。在這個類別內的公開方法
+(bool) isConnectable:(directions) theDirection{
bool isTheDirectionConnectable= NO;
switch (theDirection) {
case north:
isTheDirectionConnectable= self.connectivity_N;
break;
我不知道爲什麼這是因爲我試圖抓住財產的價值。根據蘋果開發者文檔「與屬性相關聯的getter和setter方法的默認名稱分別是propertyName和setPropertyName:例如,給定屬性」foo「,訪問器將是foo和setFoo:」
這給了我一個線索,我在這裏做了一些錯誤,對於客觀的C我很新,所以會花時間向我解釋這一點。
謝謝!
+1,除了'self'在類方法內工作。它指的是「Class」本身。 (所以你可以做''self myClassMethod'') – 2010-06-14 22:33:49
啊,謝謝,這很有趣。我從來沒有想過嘗試過! – walkytalky 2010-06-14 22:38:39
這樣做更好,所以繼承正常工作。例如,如果您的'[Foo foo]'類方法調用'[[[self alloc] init] autorelease]'而不是'[[[Foo alloc] init] autorelease]',那麼子類就可以免費獲得它。 – Chuck 2010-06-15 00:45:00