NSClassFromString和NSSelectorFromString简单使用

FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL aSelector);
FOUNDATION_EXPORT SEL NSSelectorFromString(NSString *aSelectorName);

FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass);
FOUNDATION_EXPORT Class _Nullable NSClassFromString(NSString *aClassName);

FOUNDATION_EXPORT NSString *NSStringFromProtocol(Protocol *proto) API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));
FOUNDATION_EXPORT Protocol * _Nullable NSProtocolFromString(NSString *namestr) API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));

1、通过字符串创建类和对象

// 通过NSClassFromString
Class customClass = NSClassFromString(@"XZViewController");
UIViewController *obj = [[customClass alloc] init];
obj.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:obj animated:YES];

2、通过字符串(已存在的方法名称)获取一个SEL

// 参数传递
[obj performSelector:@selector(setAccount:) withObject:account];
// 参数传递Block
void (^myBlock)(void) = ^ {
        // 拖拽验证成功验证成功
        [self.loginView checkPhoneNumberFormat];
};
[obj performSelector:@selector(setCheckVerifyCodeSuccessBlock:) withObject:myBlock];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。