performSelector实现不引入头文件

或者以下方法也可以不用引入头文件

                    SEL action = NSSelectorFromString(@"Action_HuNormalizedTrainingDetailViewController:");
                    id target = [[NSClassFromString(@"Target_HuTrain") alloc] init];
                    NSMutableDictionary *params = @{}.mutableCopy;
                    params[@"ID"] = model.releationId;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
                    UIViewController *vc =  [target performSelector:action withObject:params];
#pragma clang diagnostic pop

或者
1个参数

    UIViewController *vc = [HuNormalizedTrainingViewModel shareInstance].vc;
    SEL selector = NSSelectorFromString(@"refreshRecordNormalViewTableView");
    if (selector && [vc respondsToSelector:selector]) {
        SuppressPerformSelectorLeakWarning([vc performSelector:selector withObject:nil]);
    }

2个参数

UIViewController *vc = weakSelf.vc;
                    SEL selector = NSSelectorFromString(@"reloadRecordNormalViewTableView:withLoadMore:");
                    if (selector && [vc respondsToSelector:selector]) {
                        SuppressPerformSelectorLeakWarning([vc performSelector:selector withObject:dataSources withObject:@(YES)]);
                    }

NSClassFromString(@"HuStandardTrainViewController")

[_trainVC performSelector:NSSelectorFromString(@"setAAA:") withObject:NO afterDelay:0];

ps:宏定义

#define SuppressPerformSelectorLeakWarning(Stuff) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
Stuff; \
_Pragma("clang diagnostic pop") \
} while (0)

如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容