Iphone 向将生成的对象发送消息

Iphone 向将生成的对象发送消息,iphone,uiviewcontroller,uinavigationcontroller,nsinvocation,Iphone,Uiviewcontroller,Uinavigationcontroller,Nsinvocation,我所处的情况是,我需要向UIViewController发送一个对象和一个方法名,将来可能会实例化,也可能不会实例化。为了让事情更有趣,在推送两个或三个额外的UIViewController之后,UIViewController将被推送到UINavigationController 最好的方法是什么?一种丑陋的方法是通过中间的控制器中继消息包(一个对象和一个方法名)。那太难看了 只需将UINavigationController子类化并悬挂对象和方法名称?大概那我怎么知道什么时候清理那个信息包呢

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

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

只需将UINavigationController子类化并悬挂对象和方法名称?大概那我怎么知道什么时候清理那个信息包呢

不过在这种情况下,NSInvocation看起来很有希望。有什么想法吗

请不要使用单例或外部结构


编辑:谢谢你的评论

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

@Praveen-K,通知只对那些已经存在的人有效。我说我想向一个将生成的对象发送一个消息包

@布拉格马恩斯,我和另外两名队友正在设计这个架构。希望这能解释。请不要选择数据中心单件

@稳重的外星人,没错

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


问题是如何优雅地跨多个对象发送该消息,在我的例子中是UIViewController?假设您使用的是UIViewController,并且您知道将在当前UIViewController的基础上再推几个UIViewController。在这之后,您可能会也可能不会实例化特定类的对象,并使用对象执行方法。我们如何使用singleton实现此功能?一定有办法处理得很好。我认为NSInvocation具有这种能力。

为什么不将这些内容保存在某个ivar(比如说,一个单例类)中,并让它在实例化时被
UIViewController
访问?您可以使用NSNotification并在更改时通知接收者。老实说,当您没有规划软件的流程/体系结构时,就会出现这样的问题。我建议你使用某种“数据中心”的单例软件。@PragmaOnce:引入单例软件来改进软件架构听起来很奇怪。我真的不理解OP和Alien对单例软件的憎恨。如果是90年代的,那就不好了?