【问题标题】:SearchDisplayController & Coredata Search locks the application while loading, what can i do?UISearchDisplayController 和核心数据搜索在加载时锁定应用程序,我该怎么办?
【发布时间】:2010-03-04 21:32:41
【问题描述】:

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

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

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

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

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

在这种情况下我该怎么办?我找不到任何解决方案。

感谢您的帮助。

问候。

【问题讨论】:

    标签: search core-data locking searchdisplaycontroller


    【解决方案1】:

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

    //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
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      相关资源
      最近更新 更多