Wie lasse ich mehr als einen Parameter an den Selektor in 'scheduledtimerwithTimeInterval: Target: Selector: UserInfo: Wiederholung:': '

StackOverflow https://stackoverflow.com/questions/9515591

Frage

Ich weiß, dass Benutzerinfo verwendet, um einen Parameter zu übergeben, aber wie übergab ich mehr als eines davon?

Ich vermute, ich muss ein Objekt verwenden, aber wie ich mich ziemlich neu für objektive-c bin

danke!

War es hilfreich?

Lösung

Create a wrapper object, an NSArray or NSDictionary with the multiple objects you need to pass and pass that wrapper object in userInfo. On the receiver retrieve the objects from the wrapper object.

Example code using a NSDictionary for the wrapper:

Calling code:

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];

Receiving timer code:

- (void)timerFireMethod:(NSTimer*)theTimer {
    NSDictionary *wrapper = (NSDictionary *)[theTimer userInfo];
    NSString * obj1 = [wrapper objectForKey:@"Object1"];
    NSString * obj2 = [wrapper objectForKey:@"Object2"];
    // ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top