如何调用具有下面PrimeStudioReBuy背景的多个参数的方法?
取样方法:
-(void) reloadPage:(NSInteger)pageIndex firstCase:(BOOL)firstCase;
最佳答案
问题是performSelectorInBackground:withObject:
只接受一个对象参数。解决这一限制的一种方法是将一个参数的字典(或数组)传递给一个“包装器”方法,该方法解构参数并调用您的实际方法:
- (void)callingMethod {
NSDictionary * args = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInteger:pageIndex], @"pageIndex",
[NSNumber numberWithBool:firstCase], @"firstCase",
nil];
[self performSelectorInBackground:@selector(reloadPageWrapper:)
withObject:args];
}
- (void)reloadPageWrapper:(NSDictionary *)args {
[self reloadPage:[[args objectForKey:@"pageIndex"] integerValue]
firstCase:[[args objectForKey:@"firstCase"] boolValue]];
}
- (void)reloadPage:(NSInteger)pageIndex firstCase:(BOOL)firstCase {
// Your code here...
}
这样,您只需将一个“单个”参数传递给后台调用,但该方法可以构造实际调用所需的多个参数(这将在相同的后备线程上进行)。