Objective C動態獲取例項屬性

2021-06-20 17:42:31 字數 867 閱讀 1456

本文主要圍繞乙個主題,如何動態獲取例項屬性的值?

objective_c動行時庫已經有這樣的功能。使用這些方法需要加標頭檔案

#import

要用到的方法是

objc_property_t *class_copypropertylist(class cls, unsigned int *outcount)

從方法的名字可以看出作用:將乙個類的屬性copy出來。下面看乙個例子,就知道如何使用了。

@inte***ce people : nsobject

是不是很酷呀,這樣一來就可以獲取所有的屬性值。比如格式化對像為json或xml的時候就很有用。

但是如果類從其它的類繼承過來的,父類的屬性將不會被copy出來。如

@inte***ce people : nsobject

這兒可能獲取employers的屬性的值, 如何才能獲取到父類的屬性呢。

有兩種方法。

1:用前面提到的方法分別獲取子類與父類的屬性列表。

2:宣告乙個protocol, protocol中有屬性,然後獲取protocol中屬性列表

第二個方法中要用到兩個方法:

objc_property_t *protocol_copypropertylist(protocol *proto, unsigned int *outcount)

protocol *objc_getprotocol(const char *name)

用法與前面掉到的都差不多,在此我就不多說了。

HTTPS 證書處理 objective c實現

前一篇文章用c 處理了證書,這次就使用oc來試一下,其實基本原理累似,一般都是自己覆蓋幾個函式,然後自己處理證書相關的東西。自己建立乙個類,如 inte ce myurlconnection nsobject void sendpostrequest nsurl url postdata nsdat...

objectiveC獲取本地時間。

nsdate date nscalendardate date nslog date 日曆在ios裡報錯,nsdateformatter formatter nsdateformatteralloc init formatter setdateformat yyyy mm dd hh mm ss n...

Spring boot 之 動態的獲取不同的實現類

宣告介面 apiresult 就是返回值,可以根據自己的需求,定義 定義兩個實現類 service hdfsstoragetype public class hdfsstoragetype implements storagetype service ftpstoragetype public cl...