gpt4 book ai didi

Objective-C 调用编译器认为不存在的选择器(即使我们知道它存在)

转载 作者:太空狗 更新时间:2023-10-30 03:46:38 25 4
gpt4 key购买 nike

我在 prepareForSegue 方法中有这段代码

    // Get destination view
UIViewController *viewController = [segue destinationViewController];

//See if it responds to a selector
if ([viewController respondsToSelector:@selector(setSomethingOrOther:)]) {
//if so call it with some data
[viewController setSomethingOrOther:something];
}

上面的代码意味着我不必包含对要转至的 View Controller 的实际类的引用。我可以更松散地耦合两个 View Controller ,只检查它是否响应设置在其上的某些属性。

问题是,当我这样做时,会出现以下编译时错误:

'UIViewController' 的可见@interface 声明了选择器'setSomethingOrOther:'

这当然是对的。我知道我可以通过包含对 View 的引用来绕过它,但我更愿意将它分开。我该如何解决这个问题

最佳答案

使用performSelector:aSelector方法,就可以调用未声明的选择器。

关于Objective-C 调用编译器认为不存在的选择器(即使我们知道它存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com