2012-03-01 10 views
1

ユーザ情報がパラメータを渡すために使用されていますが、複数のパラメータを渡すにはどうすればよいですか?'scheduledTimerWithTimeInterval:target:selector:userInfo:repeats'のセレクタに複数のパラメータを渡すにはどうすればいいですか?

私はオブジェクトを使用しなければならないと思っていますが、私は客観的にかなり新しいです - 私は本当にこれが正しいかどうか、それについてどうすればよいか分かりません。

ありがとうございます!

答えて

4

NSArrayまたはNSDictionaryのラッパーオブジェクトを作成し、そのラッパーオブジェクトを渡して渡す必要がある複数のオブジェクトをuserInfoに作成します。受信側では、オブジェクトをラッパーオブジェクトから取得します。

ラッパーのためのNSDictionaryのを使用して

コード例:

電話番号:

NSString *obj1 = @"string1"; 
NSString *obj2 = @"string2"; 
NSDictionary *wrapper = [NSDictionary dictionaryWithObjectsAndKeys:obj1, @"Object1", obj2, @"Object2", nil]; 
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFireMethod:) userInfo:wrapper repeats:NO]; 

受信タイマーコード:

- (void)timerFireMethod:(NSTimer*)theTimer { 
    NSDictionary *wrapper = (NSDictionary *)[theTimer userInfo]; 
    NSString * obj1 = [wrapper objectForKey:@"Object1"]; 
    NSString * obj2 = [wrapper objectForKey:@"Object2"]; 
    // ... 
} 
関連する問題