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];

你可能感兴趣的:(NSClassFromString和NSSelectorFromString简单使用)