如何调用具有下面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...
}

这样,您只需将一个“单个”参数传递给后台调用,但该方法可以构造实际调用所需的多个参数(这将在相同的后备线程上进行)。

10-08 05:58