iOS MVC - 如何将数据从模型传递到控制器?

2024-01-07

我对此做了很多研究,但我对我的问题有一个心理障碍。我正在为 iOS 应用程序开发 Objective-C

这是我的设置:

  1. 视图控制器从视图(用户输入)获取文本,并将该文本传递给模型的 MethodA。

  2. 模型中的方法适用于输入文本并获取输出(例如,在谷歌中搜索该文本)。它使用dispatch_async方法进行搜索,该方法调用模型内方法的选择器。

  3. MethodB 解析输出并将所有结果放入 NSMutableArray

  4. 我的问题在这里:如何将该 NSMutableArray 传递回视图控制器以便我可以在视图上显示它?

抱歉,如果我的问题的答案非常简单/明显。我是 Objective-C 新手


每当我想要进行异步处理并且这些内容需要返回到 UI 中的某个位置时,我都会执行以下两项操作之一:

1. Use NSNotification to tell anyone who cares that the work is complete
2. Use a delegate property on the worker and a @protocol

1 NS通知

模型对象应该在它的 .h 文件中记录当某些事情发生时它会触发通知;例如当模型的一部分已更新时。当 ViewController 初始化模型对象时,将其自身设置为记录通知的观察者,并实现更新 UI 的回调。

2 委托和@protocol

创建一个@protocol,例如@protocol FooModelUpdateDelegate使用正确命名的方法,例如fooObjectDidUpdate:(Foo *)object;,然后模型类有一个委托属性为id<FooModelUpdateDelegate> updateDelegate并且 ViewController 将自己设置为该委托,我相信您可以弄清楚其余的事情。

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

iOS MVC - 如何将数据从模型传递到控制器? 的相关文章

随机推荐

  • 隐藏或加密文件的 URL?

    大家好 感谢您抽出时间 我只想说 尽管我不是 php 新手 但我还不知道所有事情 而且我仍然缺乏一些知识来解决其中一些问题 我目前的困境是 我有一个包含用户制作的歌曲的数据库 其中包含各种信息 包括所述歌曲的位置 我让它工作的方式是我有一个
  • 如何让 Symfony2 与 SQL Azure 连接?

    有人已经在这个主题上取得了成功吗 我已经尝试编写一个自定义 Doctrine 平台 但它并不像我想象的那么容易 顺便说一句 这是标有 sql azure symfony 2 0 的第一个问题 check https github com b
  • 为什么将 respond_with 从 Rails 4.2 中删除到它自己的 gem 中?

    In 导轨 4 2 http weblog rubyonrails org 2014 8 20 Rails 4 2 beta1 respond with 已从核心移出到responders gem 中 测试版发行说明 respond wit
  • 从另一个视图调用我的服务器上的 API

    所以 这里的情况有点奇怪 我有一个 Django 项目 使用 TastyPie 来支持其 API 和一些视图 模板 这些视图 模板将用于为各个站点的插件提供支持 我没有将此插件构建为标准 Django 模板 而是被要求使用我们的 API 来
  • 使用三元运算符来初始化引用变量?

    抛开所有可维护性和阅读问题不谈 这些代码行会产生未定义的行为吗 float a 0 b 0 float x some condition a b x 5 cout lt lt a lt lt lt lt b 不 没关系 它不会在此代码中创建
  • 多点连接 - 在 Swift 5 中获取文件传输(互联网)速度和文件大小

    我正在点对点传输照片 一切正常 但我无法获得照片 文件 传输速度 例如互联网速度 与MB 一样 文件也被传输 其次我想获取该文件的大小 我们使用数据格式传递照片MCSession 由于隐私原因 我无法在此处添加项目代码 但我将分享我关注的参
  • 我在这个 CSS 布局中做错了什么?

    我在这里做了这个布局 http www 2xfun com http www 2xfun com 它使用了一些 css3 效果和并非每个浏览器都支持的东西 但如果它们不起作用也没关系 问题是我真的尽力让旧浏览器中的基本功能保持正常运行 我没
  • 将 2D NumPy 数组转换为 1D 数组以绘制直方图

    我正在尝试使用 matplotlib 绘制直方图 我需要转换我的单行二维数组 1 2 3 4 shape is 1 4 进入一维数组 1 2 3 4 shape is 4 我怎样才能做到这一点 Adding ravel http docs
  • GHC Haskell 当前的约束系统有什么问题?

    我听说 Haskell 的 损坏 约束系统存在一些问题 从 GHC 7 6 及以下版本开始 它出什么问题了 是否有一个可比的现有系统可以克服这些缺陷 例如 edwardk 和 tekmo 都遇到了麻烦 例如此评论来自 tekmo http
  • Google Api PHP 客户端库

    我正在尝试将 Google API PHP 客户端库用于 Google Analytic v3 我可以运行我在家里编写的简单应用程序 但是当我在办公室尝试时它不起作用 当我运行该程序时 系统会要求我将 php 应用程序授权给我的谷歌帐户 允
  • 按用户条件在 JSP 中渲染

    我正在尝试创建一个简单的论坛 只是为了掌握 Spring Security 和 MVC 框架 为了简单起见 我有一个 JSP 来查看论坛帖子 如下所示 Title forumPost title br Author forumPost au
  • Java 7 中的 java 流

    我的问题可能太宽泛 答案可能是简单的 否 但我必须问 是否有 Java 8 的等效实现streams https docs oracle com javase 8 docs api java util stream package summ
  • 调整“std::vector”的大小;哪些元素受到影响?

    std vector
  • 使用 jquery 在 iframe 中动态显示 javascript google 广告的问题

    我们尝试在动态添加的 iframe 中显示 Google 广告 在 iframe 中 src 字段通常是一个 url 但我们希望使用 data text html 格式以便能够直接使用我们的广告代码 它适用于简单的 JavaScript 代
  • 在 Firefox 中通过 URL 进行 HTTP 基本身份验证不起作用?

    我知道通常您可以通过在 URL 中传递用户名和密码来登录需要使用 Selenium 进行 HTTP 基本身份验证的网站 例如 selenium open http myusername email protected cdn cgi l e
  • 复合键字典

    我在列表中有一些对象 比方说List
  • git stash create 和 git stash store 的目的是什么?

    从文档中git scm http git scm com docs git stash 有两个 git stash 命令提到了与脚本编写的相关性 但不是一般用途 create 创建一个存储 这是一个常规提交对象 并返回其对象名称 而不将其存
  • 获取两个日期之间的日期列表未正确返回 JS

    我有一个开始日期和一个结束日期 我想生成这两个日期之间 并包括 的日期列表 但我不明白为什么它不起作用 我传入了几个 JS 日期对象 我已经在下面的控制台中展示了它们记录的内容 function dateList dateStart dat
  • 使用内置 python ssl 模块验证签名

    有没有办法使用内置的ssl验证签名的模块 从理论上讲 这似乎是可能的 因为ssl必须能够验证 ssl 消息签名 但我没有看到任何用于进行简单数字签名验证的公共接口 最终 我只是想要一个类似的功能PyOpenSSL 之一 http www p
  • iOS MVC - 如何将数据从模型传递到控制器?

    我对此做了很多研究 但我对我的问题有一个心理障碍 我正在为 iOS 应用程序开发 Objective C 这是我的设置 视图控制器从视图 用户输入 获取文本 并将该文本传递给模型的 MethodA 模型中的方法适用于输入文本并获取输出 例如