我想使用一個類別在原始類上創建一個方法作爲屬性。Objective-C類別:我可以爲不在我的類別中的方法添加屬性嗎?
A類:
@interface ClassA
- (NSString*)foo;
@end
A級類別
@interface ClassA (Properties)
- (void)someCategoryMethod;
@property (nonatomic, readonly) NSString *foo;
@end
現在我這樣做的時候,它似乎工作(編輯:也許這是行不通的,它不抱怨,但我看到奇怪),但它給了我警告,因爲我沒有在我的類別實現中綜合屬性。我如何告訴編譯器,因爲原始類爲我合成了屬性,所以一切都很好?
屬性(大部分)只是''-foo'和'-setFoo'方法的糖。您不能在類別中添加任何額外的實例變量,但可以定義這些方法。 @property語法是可選的,但建議(我不知道它是否工作)。 – 2010-03-26 03:38:48
對於任何試圖用支持ivar(在類別中定義)添加屬性的人,請參閱:http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-關聯參考/ – Senseful 2013-06-26 20:23:05
可能的重複[Objective-C:屬性在類別](http://stackoverflow.com/questions/8733104/objective-c-property-in-category) – hfossli 2014-01-16 08:23:56