У меня есть SQLite db с 19 записями в нем. Из этих записей 18 имеет значение «угроза», равное 1, а одно из них имеет «угроза», равное 2. Поле установлено по умолчанию 1. Я недавно изменил 19-ю запись на «угроза» 2 для целей тестирования. Я использовал SQLite Manager (расширение Firefox), чтобы добавить значение непосредственно в файл sqlite в моем проекте. Я могу запросить таблицу, и это показывает, что в 19-й записи есть «угроза», равная 2. Когда я запускаю свое приложение в симуляторе, в 19-й записи есть «угроза» из 1. Я пробовал очистить мою сборку, приложение из симулятора, даже удаляя базу данных sqlite из моего проекта и считывая ее. Ничего не работает. SQLite Manager говорит, что это имеет значение 2, но при запуске программы она получает значение 1. Код для загрузки его в класс из БД заключается в следующем:Запись SQLite не верна на симуляторе iPhone
primaryKey = pk;
database = db;
// Compile the query for retrieving City data.
if (init_statement == nil){
const char *sql = "SELECT * FROM myTable WHERE id=?";
if (sqlite3_prepare_v2(database, sql, -1, &init_statement, NULL) != SQLITE_OK){
NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
}
}
sqlite3_bind_int(init_statement, 1, primaryKey);
if (sqlite3_step(init_statement) == SQLITE_ROW){
LOAD THE FIRST 12 FIELDS HERE
self.threat_level = sqlite3_column_int(init_statement, 13);
} else {
self.name = @"Nothing";
}
EDIT I просто попытался удалить базу данных sqlite из проекта, и я переместил ее на свой рабочий стол, чтобы поддержать ее. Я все еще могу создать и запустить приложение. Итак, он смотрит на более старую версию моей базы данных, но Spotlight говорит, что на моей машине нет других версий, кроме той, что есть на моем рабочем столе. Любая помощь здесь?
Почему бы не использовать основные данные? – bbum
Зачем использовать Core Data? (Основные данные не во всех версиях Framework) –
@Pselus Действительно ли вы ориентируетесь на устройства 2.x? –