1

我处于一种情况,我需要发送一个对象和一个方法名称 UIViewController可能会或可能不会在未来被实例化。为了让事情更有趣一点,在推送了两个或三个额外的 UIViewController 之后,UIViewController 将被推送到 UINavigationController。

最好的方法是什么?一种丑陋的方法是通过中间的控制器中继消息包(一个对象和一个方法名称)。太丑了

简单地继承 UINavigationController 并悬挂对象和方法名称?也许。那我怎么知道什么时候清理那个消息包呢?

不过,在这种情况下,NSInvocation 看起来确实很有希望。任何想法?

不不不,请不要单例,或外部结构。


编辑:感谢您的评论。

@Akshay,我已经考虑过了。问题是如果你想将消息包(一个对象和一个方法名)发送到特定navigationController下的特定对象怎么办?此外,如果目标对象未实例化,则需要清除单例以供以后使用。但是你怎么知道什么时候清理呢?使用单例只是一团糟。

@Praveen-K,NSNotifcation 仅适用于那些已经存在的人。我说我想向一个将要生成的对象发送一个消息包。

@PragmaOnce,我和另外两个队友现在正在设计架构。希望这能解释。拜托,没有数据中心单身人士。

@Sedate Alien,没错!

@9dan,感谢您的意见。事实上,我们有 NSClassFromString、NSSelectorFromString 和 performSelector,我们可以实例化任何对象并发送消息以执行具有任意数量对象的任何方法。

问题是如何优雅地跨多个对象发送该消息,在我的例子中是 UIViewController?假设你在一个 UIViewController,并且你知道你会在当前的 UIViewController 之上再推几个 UIViewController。之后,您可能会或可能不会实例化特定类的对象并使用对象执行方法。我们如何在不使用单例的情况下做到这一点?必须有一种方法可以很好地处理这个问题。我认为 NSInvocation 具有这种能力。

4

0 回答 0