gpt4 book ai didi

objective-c - 具有多个参数的 performSelectorInBackground

转载 作者:太空狗 更新时间:2023-10-30 03:17:03 27 4
gpt4 key购买 nike

如何使用 performSelectorInBackground 调用具有多个参数的方法,如下所示?

示例方法:

-(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...
}

通过这种方式,您只是将“单个”参数传递给后台调用,但该方法可以构造您真正调用所需的多个参数(这将发生在同一个后台线程上)。

关于objective-c - 具有多个参数的 performSelectorInBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5299629/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com