iOS 運(yùn)行時(shí)獲取類的所有屬性

轉(zhuǎn)自iOS 運(yùn)行時(shí)獲取類的所有屬性

一、擴(kuò)展NSArray分類

NSArray+Extension.h:

#import <Foundation/Foundation.h>

@interface NSArray (Extension)

+ (instancetype)getProperties:(Class)cls;

@end

NSArray+Extension.m:

#import "NSArray+Extension.h"
#import <objc/runtime.h>// 導(dǎo)入運(yùn)行時(shí)文件
@implementation NSArray (Extension)

//返回當(dāng)前類的所有屬性
+ (instancetype)getProperties:(Class)cls{

    // 獲取當(dāng)前類的所有屬性
    unsigned int count;// 記錄屬性個(gè)數(shù)
    objc_property_t *properties = class_copyPropertyList(cls, &count);
    // 遍歷
    NSMutableArray *mArray = [NSMutableArray array];
    for (int i = 0; i < count; i++) {

        // An opaque type that represents an Objective-C declared property.
        // objc_property_t 屬性類型
        objc_property_t property = properties[i];
        // 獲取屬性的名稱 C語言字符串
        const char *cName = property_getName(property);
        // 轉(zhuǎn)換為Objective C 字符串
        NSString *name = [NSString stringWithCString:cName encoding:NSUTF8StringEncoding];
        [mArray addObject:name];
    }

    return mArray.copy;
}


@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 經(jīng)常遇到這樣情況,當(dāng)你從后臺(tái)拿到數(shù)據(jù),字典類型,里面有很多字段,多的時(shí)候,可能會(huì)幾十個(gè),這個(gè)時(shí)候,字段轉(zhuǎn)換到模型,...
    _淺墨_閱讀 19,416評(píng)論 12 19
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,403評(píng)論 4 61
  • 聽說林小帥到泉州銀行
    tcliff閱讀 214評(píng)論 0 0
  • 1. 前幾天,跟一個(gè)同歲的朋友散步,聊著聊著就聊到了年齡。 她說:“真不敢想象,我們正走在奔四的路上。” 我說:“...
    不辣的媽閱讀 965評(píng)論 0 1
  • Getting Real 是一本關(guān)于Web設(shè)計(jì)的書,是美國(guó)Fried 和 Jason寫的一本關(guān)于他們?cè)O(shè)計(jì)的幾個(gè)成功...
    小武子閱讀 775評(píng)論 5 10

友情鏈接更多精彩內(nèi)容