загрузка данных sqlite в детальный вид.Данные не меняются.Помогите - PullRequest
1 голос
/ 07 апреля 2011

Я новичок в программировании, и я следую учебному пособию, которое загружает данные из базы данных sqlite в таблицу (имя), а затем при выборе загружает подробное представление, отображающее дополнительные данные (адрес и т. Д.).

Myпроблема заключается в том, что при первой загрузке данных в подробном представлении все работает нормально, однако при попытке снова загрузить данные в другой элемент таблицы (имя) подробное представление загружается с первой партией данных и не изменяется до тех пор, пока я не перезапущутренажер.то есть

первый выбор: таблица «Имя 1» push подробный просмотр «Адрес 1» работает нормально.

второй выбор: таблица «Имя 2» push подробный просмотр «Адрес 1» данные не изменяются.

Вот мой код;

- (void) hydrateDetailViewData {if (isDetailViewHydrated) return;

if (detailStmt == nil) {
    const char *sql = "Select ClubAddress from clubNames Where clubID = ?";
     if (sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) !=SQLITE_OK)
         NSAssert1(0, @"Error while creating detail view statment. '%s'", sqlite3_errmsg(database));
     }
sqlite3_bind_int(detailStmt, 1, clubID);

if (SQLITE_DONE != sqlite3_step(detailStmt)) {
    const char *db_text = sqlite3_column_text(detailStmt, 0);
    NSString *address = [NSString stringWithUTF8String: db_text];
    self.ClubAddress = address;
}
else
    NSAssert1(0, @"Error while getting the address of club. '%s'", sqlite3_errmsg(database));
sqlite3_reset(detailStmt);

isDetailViewHydrated = YES;
}

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

Любая помощь будет принята с благодарностью.Спасибо

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

Из вашего кода вы устанавливаете isDetailViewHydrated в YES, но устанавливали ли вы когда-либо его в нет?

0 голосов
/ 07 апреля 2011

У меня есть несколько вопросов:

Получаете ли вы правильную информацию из вашего запроса? Проверьте это, запросив БД непосредственно из командной строки.

Представляете ли вы данные в табличных представлениях? Табличные представления не обновляются мгновенно. Вы должны вызвать [tableView reloadData] для этого. Проверьте Руководство по программированию табличного представления, если у Вас есть дальнейшие сомнения с этим.

Можете ли вы опубликовать фрагмент кода, куда вы помещаете те ViewControllers, которые выходят из строя?

Если у вас возникают сбои при освобождении объекта, вам лучше взглянуть на руководство по программированию управления памятью в документации для разработчиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...