[英]How do I pass two parameters with a NSTimer?
我有這個void
-(void)MoveMissile:(UIImageView *)Missile mtimer:(NSTimer *)MissileTimer{
// lines of code here
}
這個NSTimer:
[NSTimer scheduledTimerWithTimeInterval:0.025 target:self selector:@selector(MoveMissile:mtimer:) userInfo:nil repeats:YES];
我想將NSTimer
作為第二個參數傳遞,並將一個名為Missile1
的UIImageView
作為第一個參數Missile1
。
如何傳遞這兩個參數?
從NSTimer文檔中 :
選擇器
計時器觸發時發送到目標的消息。 選擇器應具有以下簽名:timerFireMethod :(包括一個冒號,指示該方法接受一個參數)。 計時器將自身作為參數傳遞,因此該方法將采用以下模式:
- (void)timerFireMethod:(NSTimer *)timer
因此,您必須使用一個采用單個參數的方法,然后通過計時器userInfo將引用傳遞給圖像視圖。
[NSTimer scheduledTimerWithTimeInterval:0.025
target:self
selector:@selector(missileTimerMethod:)
userInfo:anImageViewReference
repeats:YES];
- (void)missileTimerMethod:(NSTimer *)missileTimer
{
UIImageView *theImageView = (UIImageView *)missileTimer.userInfo;
}
您無法按照嘗試的方式進行操作。 計時器的選擇器不必具有零個或一個參數,如果具有一個,則必須是計時器(該方法的簽名在NSTimer類引用中清楚地說明了)。 但是,您可以在userInfo參數中傳遞所需的任何對象。 因此,將圖像視圖作為userInfo傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.