iOS分類中通過runtime新增動態屬性

2021-09-08 01:24:13 字數 969 閱讀 5004

這個的話並不是說  可以  在程式執行的時候   來幾個 未知的東西  就新增什麼  1 2 3 4 5的屬性。而是可以在系統原有類的基礎上  給那個類 集合實際的工程來新增你方便實用的東西。比如  乙個 label  有 乙個  backgroundcolor屬性,我要給它新增乙個 其他的 比如 文字 第乙個字的color,那麼就可以用這種技術了。

一下是從網上找的乙個demo

#import@inte***ce person : nsobject

@property (assign, nonatomic) nsinteger age; -(void)run; @end #import "person.h" @implementation person -(void)run @end

#import "person.h"

@inte***ce person (personextention) @property (copy, nonatomic) nsstring *name; -(void)say***; @end #import "person+personextention.h" #import @implementation person (personextention) //定義常量 必須是c語言字串 static char *personnamekey = "personnamekey"; -(void)setname:(nsstring *)name -(nsstring *)name -(void)say*** @end

總結:在分類中@property不會生成_變數,也不會實現getter和setter方法,我們可以手動實現如下

-(nsstring *)name

-(void)setname:(nsstring *)name

但是這樣是沒什麼意義的,而且分類中不允許定義變數,所以只能用runtime類

iOS分類中通過runtime新增動態屬性

1.先建立乙個類 property assign,nonatomic nsinteger age void run end import person.h implementation person void run end2.定義分類 import person.h inte ce person ...

iOS開發中runtime的使用

事實證明 1.傳送訊息 implementation viewcontroller void viewdidload end implementation uiimage image 載入分類到記憶體的時候呼叫 void load 注意 不能在分類中重寫系統方法imagenamed,因為會把系統的功...

iOS 用runtime為分類新增成員變數或屬性

關於ios分類 很多說法是只能新增方法,而不能新增成員變數或屬性。有些人可能知道,這種說法是不嚴謹的,並不是絕對不能新增變數。解釋如下 我們知道在乙個類中用 property宣告屬性,編譯器會自動幫我們生成 成員變數和setter getter,但分類的指標結構體中,根本沒有屬性列表。所以在分類中用...