Ошибка при использовании NSThread - PullRequest
0 голосов
/ 14 марта 2012

Когда мое приложение запускается впервые, оно загружает содержимое plist в таблицу sqlite.Я использую NSThread для запуска процесса, но он выдает ошибку после завершения процесса.Код, который я использую для вызова и запуска процесса, выглядит следующим образом -

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

-(void)addData
{
   @try {       
      sqlite3_stmt *stmt;
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
      [NSThread sleepForTimeInterval:1];
  .
  .
  Process Data
  .
  .
     [pool drain];  
   }
   @catch (NSException *exception) {
   }
}

Ошибка является ошибкой SIGABRT и появляется в приведенном ниже коде -

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

Я прошелпроцесс в Debug и процесс завершается нормально, но через несколько секунд он выдает эту ошибку.Это происходит в потоке 1, а код в Main.m

Может кто-нибудь сказать мне, в чем я не прав?

1 Ответ

0 голосов
/ 14 марта 2012

Чтобы найти место падения, используйте отладчик, как показано на рисунке.!* Добавьте точку останова, используя «Все точки исключения» в панели отладчика.

Image for How to enable exception breakpoints in xcode debugger

...