Tap*_*Pal 3 iphone objective-c ipad ios
在我的类中有一个方法可以说它-aMethod:采用id类型参数并对该对象进行一些操作.现在我想调用一个方法来说明-someMethod该对象.但问题是对象类型是id,我不能施放它,因为我不知道哪种类型的对象将来到这里.在我的代码下面,但它显示错误no know instant method for the selector someMethod.任何人都可以帮助处理这种情况.
我不想使用块或委托.
- (void)aMethod:(id)anObject
{
    // other stuff
    if([anObject respondsToSelector:@selector(someMethod)]) [anObject someMethod];
}

您只需以任何方式向编译器显示该方法.你不需要那样输入接收器.(但我会这样做.)我个人更喜欢有一个收集方法的协议.
@protocol MyDelegateProtocol
- (void)someMethod;
@end
// You do not have to use that protocol for typing.
// So you can use your code as you did.
另一种方法是向类添加类别.
@interface AnyClassIncludingNSObject( MyDelegateAddition )
- (void)someMethod;
@end
不要不执行这一类.
第三种解决方案是将方法添加到发送消息的类中.
- (void)someMethod {}
它始终是相同的:编译器必须一次看到它.
| 归档时间: | 
 | 
| 查看次数: | 924 次 | 
| 最近记录: |