Почему я не могу получить этот код SQLite для загрузки правильных данных для моего детального просмотра? - PullRequest
0 голосов
/ 15 марта 2010
- (void) hydrateDetailViewData {
//if detail view is hydrated then do not get it from database
if(isDetailViewHydrated) return;

if(detailStmt == nil) {
    const char *sql = "select snapTitle, snapDesc from Snap where snapID =?";
    if(sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) != SQLITE_OK)
        NSAssert1(0, @"Error while creating detail view statement. '%s'", sqlite3_errmsg(database));
    NSLog(@"SQLite= %d", sqlite3_step(detailStmt)); 

}

if (sqlite3_step(detailStmt) == SQLITE_ROW)//execute sql statement on database, and make sure it executed properly.
{
    self.snapDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 1)];
}   

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

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

Сообщение об ошибке:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named "DetailView"'
2010-03-15 16:35:55.202 Snap2Play[58213:20b]

Ответы [ 2 ]

1 голос
/ 15 марта 2010

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

Ошибка связана с вызовом loadViewFromNibNamed: bundle: - Я предполагаю, что в вашем проекте нет файла xib с именем DetailView.xib

0 голосов
/ 15 марта 2010

Похоже, вам не хватает инструкции для привязки параметра к вашей инструкции выбора SQL. У вас есть это:

const char *sql = "select snapTitle, snapDesc from Snap where snapID =?";

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

sqlite3_bind_int(detailStmt, 1, snapID);
...