xCode - сбой приложения без объяснения причин на устройстве 3GS - PullRequest
0 голосов
/ 12 ноября 2011

Я делаю много вставок в моей базе данных sqlite. По какой-то причине в определенный момент приложение вылетает. Я проверил команду вставки - все хорошо. Если я запускаю его на устройстве iPhone 4 - он работает отлично.

Проблема в том, что я не получаю никаких сообщений об ошибках, даже предупреждений памяти. xCode, кажется, все еще работает, но на устройстве приложение вылетает.

Это мой код:

    sqlite3_stmt *compiledStatement;
    for (UpdateItems *one in arrList) {
        NSString *stat;
        stat = [[NSString alloc] initWithFormat:@"insert into table values (null, (select id from t1 where code='%@'), (select id from t2 where c='%@'), '%@', '%@', '%@', '%@', '%@', '%@')", one.bk, one.code, one.data, one.b, one.bV, one.s, one.sV, one.o];
        if(sqlite3_prepare_v2(database, [stat UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK)
        {
            while(YES){
                NSInteger result = sqlite3_step(compiledStatement);
                printf("db error: %s\n", sqlite3_errmsg(database)); 
                if(result == SQLITE_DONE){
                    index = index + 1;
                    double totalPrc = 0.75f + roundf(((double) index / totalRecords) / (100 / 20) * 100.0f) / 100.0f;
                    if (self.percentageCompleted != totalPrc) {
                        self.percentageCompleted = totalPrc;
                        [self performSelectorOnMainThread:@selector(refreshHUD) withObject:nil waitUntilDone:NO];
                    }
                    break;
                }
                else if(result != SQLITE_BUSY){
                    printf("db error: %s\n", sqlite3_errmsg(database)); 
                    break;
                }
            }
            sqlite3_reset(compiledStatement);
        }
        [stat release];
    }

Как я могу отследить это, чтобы увидеть, в чем проблема?

Ответы [ 2 ]

1 голос
/ 13 ноября 2011

Если приложение, в котором произошел сбой, было построено с: зачисткой отладочных символов - НЕТ :

в окне вашего органайзера должен появиться красивый символический журнал сбоев, дающий трассировку стека и т. Д .:

1 голос
/ 13 ноября 2011

Возможно, вы ничего не увидите на консоли xcode, а как насчет журналов сбоев устройства? Каждый раз, когда происходит сбой, репортер выдает отчет о сбое. Используйте органайзер XCode, чтобы вызвать журналы устройств, обозначить их символами

...