CSProperty.h 826 Bytes
//
//  CSProperty.h
//  CocoaSettings
//
//  Created by Yunpeng Li on 2019/8/21.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface CSProperty : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) Class clazz;

/**
 property的Type Encoding
 参见: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html
 */
@property (nonatomic, copy) NSString *typeEncoding;

+ (instancetype)propertyWithName:(NSString *)name clazz:(Class)clazz typeEncoding:(NSString *)typeEncoding;
@end


/**
 获取一个类的全部属性

 @param clazz 类类型
 @return NSDictionary key为属性名,value为CSProperty
 */
extern NSDictionary<NSString *, CSProperty*> *CSPropertiesFromClass(Class clazz);

NS_ASSUME_NONNULL_END