我使用下面的代码到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