2010-09-25 134 views
2

我有我的Picker类:奇怪的Xcode警告

- (id)initWithFrame:(CGRect)frame withSender:(id)sender withDate:(NSDate*)date { 
    if ((self = [super initWithFrame:frame])) { 

datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0 , 0, 0)]; 
datePicker.date = date; 
[sender changeDate:self.datePicker]; 
datePicker.date = date; 

} 

而且发信人类:

- (void)changeDate:(id)sender { 

//some code 

} 

这两个方法也都在.h文件中声明。

但是当我编译,即使一切运作良好时,Xcode告诉我:

没有 '-changeDate:' 方法找到

参照线[sender changeDate:self.datePicker];

什么我能做到这一点消失吗?谢谢!

回答

2

因为您的发件人具有类型ID,并且对于类型ID,因此没有称为(changeDate :)的方法。因此,如果您想调用changeDate:方法,则必须投射您的发件人,否则您必须指定特定的类类型。

(MySender *)mySender = (MySender *)sender;

- (id)initWithFrame:(CGRect)frame withSender:(MySender *)sender withDate:(NSDate*)date { 
+0

非常感谢您! (这很明显!: - /) – Abramodj 2010-09-25 12:52:40