gpt4 book ai didi

iphone - 我可以使用后台线程解析数据吗?

转载 作者:行者123 更新时间:2023-12-03 13:14:20 25 4
gpt4 key购买 nike

我正在使用chcsvparser在应用启动时解析来自csv文件的数据。在主线程上启动花费的时间太长,因此我考虑在后台线程上执行此操作。但我读到您不能在线程之间传递对象。解析器输出NSArray,有没有办法做到这一点?我还读到您不应该从后台线程更改UI,但是此数组将加载表 View 。

最佳答案

NSObject类具有几个不同的实例方法,使您可以在主UI线程上调用方法。例如,performSelectorOnMainThread:withObject:waitUntilDone:方法允许您使用所选对象在主线程上调用接收器的方法。

以下是一些入门代码:

-(void) dataDoneLoading:(id) obj {
NSMutableArray *array = (NSMutableArray *) obj;
// update your UI
NSLog(@"done");
}

-(void) myThread:(id) obj {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *array = [[[NSMutableArray alloc]init ]autorelease];

// build up your array

[self performSelectorOnMainThread:@selector(dataDoneLoading:) withObject:array waitUntilDone:NO];

[pool release];
}

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

[NSThread detachNewThreadSelector:@selector(myThread:) toTarget:self withObject:nil];
}

关于iphone - 我可以使用后台线程解析数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6965265/

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