我在检查它的存在后调用一个方法,但它一直在给出错误。我做了很多次这样的事情,但现在却给出了错误。任何帮助
if ([[self.navDashBoard.viewControllers lastObject] respondsToSelector:@selector(updateScreenForExtraOption)])
{
[[self.navDashBoard.viewControllers lastObject] updateScreenForExtraOption];
}
请看我的更新图像同样的东西在同一个类中完美地工作,而其他方法则不然。我没有在其中创建任何具有refreshPage方法的Category或ViewController子类。
答案 0 :(得分:2)
通常你看到的是:
if ([[self.navDashBoard.viewControllers lastObject] respondsToSelector:@selector(updateScreenForExtraOption)])
{
[[self.navDashBoard.viewControllers lastObject] performSelector:@selector(updateScreenForExtraOption)];
}
这会在直接调用方法时发出警告但不会出错。或者按照Paulw11建议的方式进行,并将其转换为正确的类型。
答案 1 :(得分:0)
我刚刚通过导入一个将此方法声明为public的类(UIViewController子类)来修复此问题。即使我没有使用那门课程。