美文网首页iOS DeveloperiOS高级进阶
iOS Runtime获取对象所有key值

iOS Runtime获取对象所有key值

作者: 南城同學 | 来源:发表于2016-12-02 17:55 被阅读574次
1.引入库
#include <objc/runtime.h>
2.以系统对象为例,正常情况下我们无法查看系统对象的私有属性,如下方法可以得到其全部属性。

以相册的PHAsset为例:

for (PHAsset *asset inself.assetsFetchResults) {
    unsigned int count;
    // 获取属性列表
    objc_property_t *propertyList = class_copyPropertyList([asset class], &count);
    for (unsigned int i = 0; i<count; i++) {
        const char *propertyName = property_getName(propertyList[i]);
        NSLog(@"property----="">%@", [NSString stringWithUTF8String:propertyName]);
    }   
}
打印的部分属性
 property----=>avalanchePickType
 property----=>locationData
 property----=>savedAssetType
 property----=>cloudIsDeletable
 property----=>sceneClassifications
 property----=>distanceIdentity
 property----=>curationScore
 property----=>locationCoordinate
 property----=>imageOrientation
 property----=>aspectRatio
 property----=>uniformTypeIdentifier
 property----=>persistenceState
 ..........

相关文章

网友评论

    本文标题:iOS Runtime获取对象所有key值

    本文链接:https://www.haomeiwen.com/subject/mzdqmttx.html