【发布时间】:2014-07-31 06:25:20
【问题描述】:
我一直在用一些相当奇特的概念在 Objective-C 中进行试验。
下面是一个例子: 本质上,我有一个名为“theFilter”的对象,它应该从另一个对象“theSender”获取所有消息以及“Some_More_Messages”。 Filter 的实例旨在对任意数量的实例进行过滤,所有实例都属于不同的类。根据某些标准,它以“Some_More_Messages”协议将消息发送给其他对象,而所有其他对象仅采用标准路径。
Filter<Some_More_Messages> *theFilter;
例如,我想在 UIView 实例前面有这个过滤器实例,我需要我的“过滤器”对象能够接收 UIView 实现的所有消息。比如:
Filter<UIView,Some_More_Messages> *theFilter;
但我不能继续为我需要过滤的每个类创建协议。这是为了让编译器停止抱怨并获得自动完成和其他一切。
有什么想法吗?
PS。在“theSender”的代码中,我从不直接引用 UIView 实例,而是与它的“filterInstance”对话并将其发送给 UIView 实例所知道的“Some_More_Messages”。它知道它执行的东西,所有其他选择器都被重定向到其他实例。
【问题讨论】:
-
听起来您在谈论代理对象,如果是这样,您想阅读运行时指南中的Message Forwarding。另见
NSProxy。
标签: objective-c objective-c-runtime