iOS 反射

什么是反射

类名、方法名、属性名和字符串在运行时相互转化的能力

反射方法


// SEL和字符串转换

FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL aSelector);

FOUNDATION_EXPORT SEL NSSelectorFromString(NSString *aSelectorName);

// Class和字符串转换

FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass);

FOUNDATION_EXPORT Class __nullable NSClassFromString(NSString *aClassName);

// Protocol和字符串转换

FOUNDATION_EXPORT NSString *NSStringFromProtocol(Protocol *proto) NS_AVAILABLE(10_5, 2_0);

FOUNDATION_EXPORT Protocol * __nullable NSProtocolFromString(NSString *namestr) NS_AVAILABLE(10_5, 2_0);

应用场景

1、代码模块化,解耦代码

2、后端动态下发类名方法名,动态决定调用情况

你可能感兴趣的:(iOS 反射)