我有一个NSString *方法。如果它存在,我想叫它,如果不存在,什么也不做。

SEL eventSelector = NSSelectorFromString(eventSelectorStr);
if ([delegate respondsToSelector:eventSelector]) {
    [delegate performSelector:eventSelector];
    [delegate adapterDidFinishAdRequest:self];
}
else {
    // Does not implement selector
}

此代码不起作用,因为NSSelectorFromString将字符串注册为选择器,因此respondsToSelector:eventSelector将导致崩溃,因为选择器实际上无效。

最佳答案

你为什么说那不管用?这是实现调用可选委托方法的最常用方法。我从来没有对这个结构不起作用的问题。

10-07 18:44