2012-11-25 26 views
1

代碼下方的想法是在兩個類之間進行交互。按下按鈕時,我想在另一個班級打印一個語句。 當我按下按鈕時,我無法打印「測試」。UIButton addTarget:調用另一個類的方法

Buttonclass.m:

HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init]; 
    [knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside]; 

HjulGenkendelse.h

@interface HjulGenkendelse : UIGestureRecognizer 
- (void)hjul:(UIButton *) sender; 

HjulGenkendelse.m

- (void)hjul:(UIButton *) sender 
{ 
    NSLog(@"Test!"); 
} 

不有人有任何解決我的問題?

由於通過提前:)

回答

3

的問題很可能是在這裏:

HjulGenkendelse *hjulRecognizer; 
[knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside]; 

在您聲明對象的第一行。但是你實際上並沒有創建這個對象。所以,如果你使用的是ARC,這將被初始化爲nil。然後,您將添加nil作爲該操作的目標。由於它沒有目標,因此操作不會發送。 (這不是嚴格的,但你應該查看無目標行動和響應者鏈來了解原因)。

解決的辦法是簡單實例化一個對象成爲操作的目標。第一行更改爲

HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init]; 

使用任何初始化器是合適的,如果初始化不適合HjulGenkendelse類。

+0

感謝您的建議。 –