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

2024-01-07

我在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];
    }

上面的代码意味着我不必包含对正在连接的视图控制器的实际类的引用。我可以更松散地耦合两个视图控制器,然后检查它是否响应其上设置的某些属性。

问题是,当我这样做时,我收到以下编译时错误:

“UIViewController”没有可见的 @interface 声明选择器“setSomethingOrOther:”

这当然是真的。我知道我可以通过引用视图来解决这个问题,但我更愿意将其分开。我该如何解决这个问题


Use the performSelector:aSelector方法,那么您可以调用未声明的选择器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 将数据从块传递到视图

    我发现您可以通过将数据设置到 xml 文件来将数据设置到块视图 有没有办法在不访问 xml 文件的情况下设置它 还有一个问题 如何将数据从控制器传递到块 用于将数据从块传递到视图 在块中使用 this gt setVariableName
  • Android Wear:Google Play 服务已过时。需要 9256000 但找到 8701534

    我的 Android Wear 应用程序无法运行 每次尝试在手机上打开某些内容时 我都会在 logcat 中收到此错误 W GooglePlayServicesUtil Google Play services out of date Re
  • 如何使用构造函数在另一个类中创建对象?

    所以我正在编写我的代码 它是以模块化方式设计的 现在 我的一堂课 被称为Splash必须创建另一个类的对象 该类称为Emitter 通常 您只需创建对象并完成它 但这在这里不起作用 因为Emitter类有一个自定义构造函数 但是当我尝试创建
  • 协调器布局和相对布局问题

    当您在 android studio 中创建一个空白 Activity 时 这是给定的布局
  • libmagic。文本/纯文本而不是文本/javascript 文本/css

    我使用 libmagic 来获取项目 Web 界面中文件的 mime 类型 我在 css 和 js 文件上得到文本 纯 mime 类型 例如 Chromium 显示以下警告 Resource interpreted as Styleshee
  • cocoa应用程序中的资源文件夹路径

    我正在开发使用一些 c 文件的 Mac OS X 应用程序 并且我有一个配置文件 我将其添加到应用程序资源中 我的问题是 资源文件夹的相对路径是什么 I tried MyAppName app Contents Resources conf
  • MATLAB 与命名空间最接近的东西是什么?

    我的实验室里有很多 MATLAB 代码 问题是确实没有办法组织它 由于所有函数都必须位于同一个文件夹中才能调用 或者您必须将一堆文件夹添加到 MATLAB 的path环境变量 似乎我们注定会在同一个文件夹中拥有大量文件 并且全部位于全局命名
  • Java应用程序中的主要方法[重复]

    这个问题在这里已经有答案了 我们到处都读到要启动一个 java 程序 我们需要一个起点 那就是静态 main 方法 在 Java EE 应用程序中 main 方法位于何处 它是否内置在应用程序服务器 容器中 它是如何触发的以及我们可以对此进
  • 从 qrc 导入 qml 时 QtCreator 语法高亮

    当我从 qrc 位于不同的目录中 导入 qml 时 它可以编译并正常工作 但是当 Qt Creator 无法识别导入的组件并且不突出显示它时 这是代码 import QtQuick 2 0 import qrc qml libs Appli
  • 根据另一列更改一列的值

    这是同样的问题根据 pandas 中的另一个值更改一个值 https stackoverflow com questions 19226488 change one value based on another value in panda
  • 带有 sortKeys 和参数值的 Spring Batch Paging

    我有一个在 Spring Boot 中运行的 Spring Batch 项目 该项目工作得很好 对于我的读者 我将 JdbcPagingItemReader 与 MySql PagingQueryProvider 结合使用 Bean pub
  • youtube-dl 速率限制下载速度和自动恢复下载[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 shell 脚本进行视频转换 这是 shell 脚本 bin bash downloading video youtube d
  • Laravel Nova - 将 Nova 路径指向资源页面

    我需要将 Nova 路径指向资源 这样当用户登录时 他就会定向到该特定资源 我已更新此路径 config nova php path gt crm resources clients 现在登录后 我可以看到 URL 已更新 但页面仍然是We
  • 如何正确构建 KnockoutJS 应用程序

    我想知道如何以正确的方式构建 KnockoutJS 应用程序 官方文档几乎总是只使用一个 ViewModel 在仅实现了几个功能之后 我的代码变得非常混乱 并且来自面向对象的背景 我对这样的架构非常过敏 所以必须有更好的解决方案 由于对 J
  • 从 Java 调用 Mono 程序集

    我有一个用 C 编写的大型文本校对框架 我想编写一个使用这组库的 OpenOffice 扩展 我首选的语言是 Java 因此 我需要一种从 Java 访问 NET 程序集的方法 在 Windows 和Linux 有没有办法从 Java 调用
  • 程序化 MSIL 注入

    假设我有一个像这样的有缺陷的应用程序 using System namespace ConsoleApplication1 class Program static void Main string args Console WriteLi
  • RecyclerView 问题:EditText 失去焦点

    我已经放了一些EditText in RecyclerView因为我需要获得一些值 实现是这样的
  • 为什么没有换行符的情况下读取文件会更快?

    在Python 3 6中 如果存在换行符 则读取文件需要更长的时间 如果我有两个文件 一个带有换行符 另一个没有换行符 但它们具有相同的文本 那么带有换行符的文件将花费大约 100 200 的时间来读取 我已经提供了一个具体的例子 步骤 1
  • 如何让 Brew 使用 +clipboard 安装 Vim?

    我正在尝试弄清楚如何在使用 Vim 编辑的文件和 macOS 剪贴板之间进行复制和粘贴 大多数说明都说首先使用 Homebrew 安装 Vim 因为它将在启用剪贴板选项的情况下安装 vim version 将显示 clipboard 然而
  • Objective-C 调用编译器不认为存在的选择器(即使我们知道它存在)

    我在prepareForSegue方法中有这段代码 Get destination view UIViewController viewController segue destinationViewController See if it