當前位置:成語大全網 - 書法字典 - IOS修改私有屬性&;& amp成員變量(KVC)

IOS修改私有屬性&;& amp成員變量(KVC)

修改私有屬性是我們日常開發中常見的場景。比如修改壹個三方庫的屬性,但是三方庫沒有在頭文件中公開該屬性。壹般來說,修改私有屬性有兩種方案:KVC和運行時。今天這裏不介紹原理,只介紹實踐。

大致思路:繼承要修改的類,獲取要修改的屬性或成員變量,改變其值,然後賦給該類。

下面的示例通過子類ZXSonViewController繼承父類ZXParentViewController,並在viewDidLoad方法中演示它。

父類定義私有屬性名。

子類繼承父類,並由KVC修改。

此時使用的Api從[setValue: forKey:]更改為[setValue:forKeyPath:]。

父類使用自定義類之壹作為屬性。

子類由[setValue:forKeyPath:]修改。

成員變量被修改時。

子類

因為struct本身不遵循KVC協議,所以我們可以把它轉換成NSValue。

父類使用枚舉作為成員變量。

子類通過五個步驟修改父類成員的變量。

截圖如下

看打印輸出。

通過KVC修改私有屬性或成員變量的方法基本都列出來了,但是需要註意的是,KVC本身屬於硬編碼的形式,容易操作和閃回,使用時要做好安全保護。