是否有可能转发房产?

时间:2011-05-24 02:49:09

标签: cocoa-touch ios4

是否可以转发财产?

假设我有一个代理类,其成员具有一个名为string的属性。

我希望我的代理类具有名为string的相同属性。从那里开始,我希望每当我在代理上调用getter / setter时,它就会在其类成员上设置/获取值。

我最接近它的是实现-forwardingTargetForSelector并在需要时切换目标,但它不干净也不实用(它会发出警告,你不能使用点语法)

1 个答案:

答案 0 :(得分:0)

您可以将属性声明为@dynamic并实施这两种方法来处理转发 - methodSignatureForSelector:forwardInvocation:。实施将在下面描述 -

- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {
    if ( alpha && [alpha respondsToSelector:aSelector] ) {
        return [alpha methodSignatureForSelector:aSelector];
    } else {
        return [super methodSignatureForSelector:aSelector];
    }
}

- (void)forwardInvocation:(NSInvocation *)anInvocation {
    if ( alpha && [alpha respondsToSelector:[anInvocation selector]] ) {
        [anInvocation invokeWithTarget:alpha];
    } else {
        [super forwardInvocation:anInvocation];
    }
}