NSProxy类引用说:
通常,发送给代理的消息被转发到实际对象,或者导致代理加载(或转换成)真实对象。
“把自己转变成真正的对象”到底是如何运作的呢?
为了使事情更加具体,假设类Foo有一个方法newFooWithString:,它接受一个字符串并返回Foo的一个新实例。是否有可能设置一个位于周围的NSProxy,如果接收到pleaseBecomeAFooUsingString: @"bar"消息,将自己转换为[Foo newFooWithString: @"bar"],占用相同的内存,而不会干扰其他可能存在的对自身的引用?
发布于 2011-08-07 22:32:41
您可以创建一个NSProxy的子类,该子类可以根据所需的每个条件来更改它将其方法转发给哪个对象。因此,您的对象将始终指向NSProxy,但您的pleaseBecomeAFooUsingString:将将它转发给的对象更改为Foo。
https://stackoverflow.com/questions/6970220
复制相似问题