Cocoa touch 是否可以转发属性?

Cocoa touch 是否可以转发属性?,cocoa-touch,ios4,Cocoa Touch,Ios4,可以转寄物业吗 假设我有一个代理类,它有一个成员,该成员依次有一个名为string的属性 我希望我的代理类具有相同的属性,也命名为string。从这里开始,我希望无论何时调用代理上的getter/setter,它都会在其类成员上设置/get值 我最接近它的是实现-forwardingTargetForSelector,并在需要时切换目标,但它既不干净也不实用,它会发出警告,并且不能使用点语法您可以将属性声明为@dynamic,并实现这两种方法来处理转发-和。实施将如下文所述—— - (NSMet

可以转寄物业吗

假设我有一个代理类,它有一个成员,该成员依次有一个名为string的属性

我希望我的代理类具有相同的属性,也命名为string。从这里开始,我希望无论何时调用代理上的getter/setter,它都会在其类成员上设置/get值


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

您可以将属性声明为@dynamic,并实现这两种方法来处理转发-和。实施将如下文所述——

- (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];
    }
}

这和我在问题中写的差不多。。。我知道这是存在的。只是觉得不好看。实际上,@dynamic位是我忘记提到的,它删除了所有警告。谢谢你的提醒!