如何发布NSThread是否有任何特定的发布过程?

时间:2011-05-17 18:07:53

标签: objective-c ios4

在我的搜索控制器代码中,我正在使用NSthread。对于我们在搜索栏中输入的每个字符,在线程启动时都会创建一个新线程。我们如何释放这些导致内存泄漏的NSThread?

这是我的NSThreads的创建地点:

if (searchString.length > 1) {
    self.searchThread = [[[NSThread alloc] initWithTarget:self selector:@selector(filterContentForSearchTextInBackgroundThread:) object:searchString] autorelease];
    [self.searchThread start];

}

1 个答案:

答案 0 :(得分:4)

答案:self.searchThread = nil;将在执行时释放线程。

更长的答案;你真的真的不想在每次击键时产生一个线程。如果你要使用线程,你应该有一个线程来处理击键,你应该告诉那个线程关于击键的发生。

这意味着您可能还需要某种“取消当前查询并启动新查询”机制。