2013-04-12 142 views
1

通過類比,在Eclipse IDE和許多其他類中,當我聲明該類的一些私有屬性時,我可以自動生成getters和setters方法。例如,聲明大約20個屬性非常有用,並且我最終創建了所有我的方法。自動生成代碼

我們是否在xCode IDE中具有相同的功能,我的意思是......當我在「.h」中編寫一些聲明方法時,是否可以自動聲明「.m」中的內容......

例如:

在 「.H」,波紋管的代碼:

- (NSString *)loadMessageLabelFr:(id)sender{ 

} 

- (NSString *)loadMessageLabelFr:(id)sender; 

在 「.M」,代碼 '所需的' 與一個菜單的功能產生

+0

嘗試使用JetBrains的AppCode。 – AndrewShmig

回答

1

我知道你的意思是 - 很多時候,宣告10後方法在我的頭,我想他們以某種方式轉移到我的實現文件。

但是...

這不是Java,對象和文件組織是完全不同的

  1. 您不必定義方法,它仍然是一個有效的使用案例。有不有具體的方法定義和doesNotRecognizeSelector:

  2. 處理方法調用,您可以在運行時

  3. 添加方法的定義可以從多個實現文件一個標題定義方法的類。

通過這些原因(和許多其他),生成的實現文件的方法頭部可能比優點更利弊。

最簡單的Xcode溶液是

  1. .h複製粘貼方法標頭到.m
  2. 使用自動完成,寫入標題的開頭,例如- (BOOL)將允許您更快地自動完成。
0

你如何定義實例變量?

的回答你的問題(例如變量)是「沒有,但你真的需要他們」 ...... 使用性能和編譯過程中爲您創建存取方法。在實踐中,你需要明確實現很少的訪問器方法。

對於公共方法,答案是否定的,但是,您可以複製方法定義,然後添加方括號,因此不需要很多工作(甚至不需要刪除分號)。

而且,這適用於兩個變量,並公開定義的方法,開始打字:

- a 

和Xcode中會提供線用適當的方法名稱的自動完成功能。

3

獲取器和設置器由編譯器爲您的類屬性隱式生成。例如。有

@property int count; 

暗示給你以下幾點:

1)命名_count伊娃,它存儲的屬性的值。

2)一個getter和一個setter

- (int)count 
{ 
    return _count; 
} 

- (void)setCount:(int)count 
{ 
    _count = count; 
} 

該代碼插入在編譯時間,這樣你就不會看到你的.m文件。這很好,因爲這樣你的代碼不會被簡單的getter和setter混淆。如果你希望你的getter和setter方法做別的事情不僅僅是設置或返回一個值,你需要定義方法通常的方式,例如:

- (void)setCount:(int)count 
{ 
    NSLog(@"Count set to %d", count); 
    _count = count; 
}