2012-03-14 5 views
-1

初めてアプリを起動したときに、plistの内容がsqliteテーブルに読み込まれます。私はプロセスを実行するためにNSThreadを使用していますが、プロセスが完了するとエラーがスローされます。私は、プロセスを呼び出し、それを実行するために使用するコードは次のようである -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エラーであり、以下のコードinthe表示されます - 私はデバッグ中のプロセスを通じて段階まし

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

プロセスは正常終了しますが、数秒後にこのエラーがスローされます。それはスレッド1で発生し、コードはMain.mにあります

誰かが私が間違っていると教えてください。

+0

SIGABRTを取得し、UIApplicationMainに停止デバッガは、多くの場合、例外のためのいくつかの詳細は、デバッガのコンソールに出力される場合には提起されたNSException ...に起こります。上記の内容を見ても問題が解決しない場合は、ここで再現すれば良い答えが得られます。 (デバッガの出力が表示されない場合は、 '@ try' /' @ catch'構造体を削除してみてください) – rickster

+0

スレッド1で例外が発生した場合、問題は投稿と関連していないと思いますコード。 – LuisEspinoza

答えて

0

クラッシュ場所を見つけるには、図のようにデバッガを使用してください。 *デバッガパンの「すべての例外ブレークポイント」を使用してブレークポイントを追加します。

Image for How to enable exception breakpoints in xcode debugger

+0

あなたの返信をありがとうございました。デバッガからの出力をチェックしました '2012-03-15 09:04:01.472 Poisons [3334:207] - [ViewController updateMyProgressBar]:認識できないセレクタがインスタンス0x6846260に送信されました'コードをチェックして、手順。すべてうまくいきました。 – user616076

関連する問題