我想在 objective-c 的运行时调用Firebase SubscribeToTopic。
并成功使用如下实现的performSelector做到了这一点:
Class firebase = NSClassFromString(@"FIRMessaging");
SEL selectSubscribeToTopic=NSSelectorFromString(@"subscribeToTopic:");
SEL selectMessaging=NSSelectorFromString(@"messaging");
[[firebase performSelector:selectMessaging] performSelector:selectSubscribeToTopic withObject:topic withObject:^(NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Framework Error while Subscribe");
}
else{
NSLog(@"Framework Subscribed to %@ topic",topic);
}
}];
但是完成块永远不会执行。有人可以提出最好的建议来实现Firebase SubscribeToTopic方法的运行时实现。
先感谢您 !
最佳答案
您的选择器是subscribeToTopic:
。这意味着该方法仅接受一个参数。我会假设一个描述主题的NSString。
因此,将完成块作为第二个参数传递不会做任何事情。运行时没有任何神奇之处,它会导致完成块仅通过将其作为额外参数传递而执行。
所有这些都提出了一个不同的问题。为什么要使用performSelector:
?
关于ios - 在 objective-c 的运行时从类调用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51001261/