#iphone #ios #sqlite #compilation
#iPhone #iOS #sqlite #Сборник
Вопрос:
У меня очень странная проблема. Мое использование sqlite в моем проекте, которое работало некоторое время, теперь перестало работать с скомпилированным кодом Xcode 4, но только на устройствах с iOS3.1.3. Он не возвращает записи, но если я отключу оптимизацию кода, он работает отлично.
Кто-нибудь знает, что может быть причиной этого, или сталкивался с подобными проблемами.
Спасибо, Раэль
// get word from database
NSString *query = [[NSString alloc] initWithFormat:@"select kana_word, kanji_word, word_type_name, word_subtype_name, custom_category_name, kana_index, dictionary_id from dictionary join word_type on word_type.word_type_id=dictionary.word_type_id join word_subtype on word_subtype.word_subtype_id=dictionary.word_subtype_id join custom_category on custom_category.custom_category_id=dictionary.custom_category_id where kana_index=%d", inKanaIndex];
sqlite3_stmt *statement;
NSLog(@"%@", query);
const char *cQuery = [query UTF8String];
if (sqlite3_prepare_v2(jmwDb, cQuery, -1, amp;statement, nil) != SQLITE_OK) {
char *errMessage;
errMessage = (char*)sqlite3_errmsg(jmwDb);
sqlite3_finalize(statement);
[query release];
return nil;
}
// build a word object
int kanji_key;
if (sqlite3_step(statement) == SQLITE_ROW) {
// create new word
self.kana = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 0)];
self.kanji = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)];
self.wordType = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 2)];
self.wordSubType = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 3)];
self.customCategory = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 4)];
self.kanaIndex = sqlite3_column_int(statement, 5);
kanji_key = sqlite3_column_int(statement, 6);
self.dictionaryId = kanji_key;
}
else {
sqlite3_finalize(statement);
[query release];
return nil;
}
Комментарии:
1. можете ли вы добавить часть кода, который возвращает записи? Кому-то действительно сложно диагностировать «что-то не работает в 3.1.3»
2. Конечно, если это поможет, вот код. При включенной оптимизации не удается вернуть ни одной строки, но при отключенной оптимизации она работает нормально.