كيف يمكنني اجتياز أكثر من معلمة واحدة إلى المحدد الموجود في "Scheduredtimerwithtimeinterval: الهدف: محدد: UserInfo: يكرر: '

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

سؤال

أعرف أن معلومات المستخدم تستخدم لتمرير معلمة، ولكن كيف يمكنني تمرير أكثر من هذه؟

أنا أظن أنه لا بد لي من استخدام كائن، ولكن كما أنا جديد إلى حد ما على الهدف، أنا لا أعرف حقا ما إذا كان هذا صحيحا وكيفية الذهاب حول هذا الموضوع؟

شكرا!

هل كانت مفيدة؟

المحلول

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"];
    // ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top