簡體   English   中英

如何通過NSTimer傳遞兩個參數?

[英]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作為第二個參數傳遞,並將一個名為Missile1UIImageView作為第一個參數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM