gpt4 book ai didi

objective-c - iOS MVC - 如何将数据从模型传递到 Controller ?

转载 作者:可可西里 更新时间:2023-11-01 05:03:28 25 4
gpt4 key购买 nike

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

这是我的设置:

  1. View Controller 从 View (用户输入)中获取文本,并将该文本传递给模型的 MethodA。

  2. 模型中的 MethodA 处理输入文本并获得输出(例如,在 google 中搜索该文本)。它使用 dispatch_async 方法进行搜索,该方法将选择器调用到模型中的 MethodB。

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

  4. 我的问题是:如何将 NSMutableArray 传递回 View Controller 以便在 View 中显示它?

抱歉,如果我的问题的答案非常简单/显而易见。我是 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 NSNotification

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

2 委托(delegate)和@protocol

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

关于objective-c - iOS MVC - 如何将数据从模型传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388888/

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