1

我正在使用 coredata 构建一个应用程序。它快完成了,但我有一个问题。

我想在我的应用程序上放置一个搜索部分。我现在做了它并且它正在工作,但是有一些奇怪的东西我无法解决。

当点击搜索按钮时,我正在准备我的谓词并搜索我的数据库,并在 tableview 上显示数据。

我的数据库中有大约 18000 个条目,当搜索一些单词时,应用程序被锁定了一段时间,在进程端应用程序显示我想要的 tableview 之后。

我想在这个漫长的进展完成时放置一个活动指示器或类似的东西,但我不能,因为应用程序被锁定在那个时间。

在这种情况下我能做什么?我找不到任何解决方案。

感谢您的帮助。

问候。

4

1 回答 1

0

您应该在新线程中开始搜索。而主线程将显示您的指示器视图(您只能在主线程中执行视觉操作)。

//make UIIndicatorView visible and start a new thread

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

-(void) doSearch{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//do search stuff;
....
// tell your main thread that search is done
[self performSelectorOnMainThread:@selector(searchDone) withObject:nil waitUntilDone:NO];
[pool release]; }
-(void) searchDone{ //hide UIIndicator view
}
于 2010-07-15T10:53:17.463 回答