一般認為category不能新增變數,其實系統已經告訴我們是可以的.
這傢伙已經給uiviewcontroller新增了圖中的幾個屬性,那麼如何實現?
其實是使用@
dynamic
來動態新增的。 (即執行時
runtime)
**:
1.建立person類
#import
@inte***ce person :nsobject
@property(nonatomic,copy)
nsstring
* name;
@end
2.建立person的類別
#import "person.h"
// 新增額外兩個屬性
@inte***ce person (addproperty)
@property(nonatomic,assign)
nsinteger
age;
@property(nonatomic,copy)
nsstring
* stu;
@end
3.person類別.m的實現
#import "person+addproperty.h"
#import
@implementation person (addproperty)
static
char namekey = 'n';
static
char stukey = 's';
// 給age屬性提供getter和setter方法
- (nsinteger)age
- (void)setage:(nsinteger)age
// 給stu屬性提供getter和setter方法
- (nsstring*)stu
- (void)setstu:(nsstring *)stu
@end
4.用一下吧
#import "viewcontroller.h"
#import "person+addproperty.h"
@inte***ce
viewcontroller()
@end
@implementation viewcontroller
- (void)viewdidload
iOS 為分類新增屬性
我們知道分類可以很簡單的新增方法,但是新增屬性卻無能為力,但是我們還是可以通過動run time的associate就可以做到 比如說我要在uimage中新增乙個url屬性 h inte ce uiimage url property nonatomic,copy nsstring url end ...
iOS為Category新增屬性
一般認為category不能新增變數,其實可以使用 dynamic 來動態新增的。即執行時runtime 分類裡面不能新增ivar是因為分類本身並不是乙個真正的類,它並沒有自己的isa。原文出自 1.建立uiviewcontroller的類別並新增幾個屬性 import inte ce uiview...
為類動態新增屬性和方法
動態新增屬性 import types class person object country china def init self,name self.name name 動態刪除屬性和方法 del delattr p1 person zhiliao print p1.name del p1.n...