我想使用以下API对线程执行某些操作,因此未调用奇怪的选择器poiOneBoxSearch,为什么?代码有什么错误吗?谢谢。
- (void)poiOneBoxSearch{
[self poiOneBoxSearcWithQueryString:@"coffee" isFinished:YES];
}
- (void)test1{
NSThread* thread = [[NSThread alloc] init];
[self performSelector:@selector(poiOneBoxSearch)
onThread:thread
withObject:nil
waitUntilDone:YES];
[thread release];
}
答案 0 :(得分:2)
如果您想使用 performSelector 方法,请阅读以下链接 ,我想你错过了什么
如果不是,您可以使用以下代码。
试试这个
- (void)test1{
[NSThread detachNewThreadSelector:@selector(poiOneBoxSearch) toTarget:self withObject:nil];
}
答案 1 :(得分:0)
试试这个:
[self performSelectorInBackground:@selector(poiOneBoxSearch) withObject:nil waitUntilDone:YES];
答案 2 :(得分:0)
[self performSelectorInBackground:@selector(poiOneBoxSearch) withObject:nil];
- (void) poiOneBoxSearch{
@autoreleasepool {
[self poiOneBoxSearcWithQueryString:@"coffee" isFinished:YES];
} }
您必须记住的最重要的事情是,由于此方法在给定选择器上创建一个线程,因此选择器必须具有自动释放池,就像引用计数内存环境中的任何其他线程一样。