我發現很難相信沒有straightforward的方式來聲明其在.m文件中的受保護屬性(以避免使用只有子類需要了解的變量來污染.h文件)。有沒有一種方法讓baseClass聲明受保護的變量而不污染.h文件?
代碼來表達,我想做到這樣的事:
// SuperClass.h
NOTHING!
// SuperClass.m
@interface SuperClass
@property (nonatomic, retain) variable;
@end
// SubClass.m
// do something with variable
更新:這種在UIGestureRecognizer發生的..看subclassing notes:
您可以創建一個UIGestureRecognizer識別 獨特手勢的子類,例如「複選標記」手勢。如果您要創建這樣一個具體的手勢識別器,請確保導入 UIGestureRecognizerSubclass.h頭文件。該標題聲明 子類必須覆蓋,調用, 或重置的所有方法和屬性。
從Carl Veazey:基本想法是,所有的屬性/方法的子類應該知道的被封裝在一個單獨的.h文件中。我想這解決了一個不同的方式污染問題。
您的派生類究竟如何知道'm'文件中的內容? '.h'和'.m'文件的整個想法是提供一個*定義*然後一個隱藏*實現*。 – 2013-04-30 08:56:24
我想我明白你在說什麼..所以,讓我們說,公司x正在銷售一段代碼,他們只顯示.h文件並隱藏其他所有內容..這段代碼的使用者必須知道什麼變量/方法他們可以繼承.. – abbood 2013-04-30 09:00:26
@ Moo-Juice請參見 – abbood 2013-04-30 12:14:28