我使用下面的代碼到displayValue
方法添加到NSObject的:如何在Objective-C中將屬性添加到NSObject?
@interface NSObject (MyNSObjectAdditions)
- (NSString*)displayValue;
@end
@implementation NSObject (MyNSObjectAdditions)
- (NSString*)displayValue {
return self.description;
}
@end
這個偉大的工程,但實際上我寧願有displayValue是隻讀屬性,而不是一個方法。
如果甚至有可能將displayValue
轉換爲屬性而不是選擇器,那麼正確的語法是什麼?
我不同意你的看法。我已經向NSObject添加了很多次類別。這是一種非常有效的選擇,可以將行爲一次性添加到類樹中的所有內容中。你只需要小心不要打破任何現有的方法。 – NSResponder 2010-02-12 23:40:57
也不同意其他觀點。如果你想沒有子添加新的實例變量,你可以使用這種技術:Objective-C的:添加屬性類別(http://stackoverflow.com/q/4597637/1804403) – Skotch 2013-05-30 21:17:28
關聯的對象('objc_ { get,set} AssociatedObject')可以用作動態替換實例變量到對象的全功能替換。 – 2016-10-10 21:08:37