在目标C的运行时从类调用方法

时间:2018-06-23 12:41:30

标签: ios firebase firebase-cloud-messaging objective-c-runtime

我想在运行时在目标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方法的运行时实现。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您的选择器是subscribeToTopic:。这意味着该方法仅接受一个参数。我会假设一个描述主题的NSString。

因此,将完成块作为第二个参数传递不会做任何事情。对于运行时,没有什么神奇的功能可以使完成块仅通过将其作为额外的参数传递而执行。

所有这些提出了一个不同的问题; 您为什么要使用performSelector: