2010-03-15 71 views
0
- (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)]; 
} 

看着上面的代碼,有人可以告訴我什麼是錯的,爲什麼它不能讓它加載在我的detailview上?我基本上遵循iPhone SDK的文章教程..但我有這不知道爲什麼錯誤。爲什麼我無法獲得這個SQLite代碼來爲我的詳細視圖加載正確的數據?

我甚至可以發送我的項目,如果你們需要看看。

錯誤消息:

*** 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] 

回答

1

你的錯誤,你的問題不匹配,錯誤是什麼,據我可以看到做上面的代碼。

錯誤與呼叫做loadViewFromNibNamed:bundle: - 我猜你沒有在您的項目稱爲DetailView.xib

一個XIB文件
+0

我確實有正確的filename..i的廈門國際銀行需要幫助seriously..i不知道在哪裏出了毛病.. – summer 2010-03-15 09:30:58

+0

什麼當代碼崩潰時,在調試器中堆棧跟蹤?如果你把這個問題放在你的問題上,更多的人可能會提供幫助? – deanWombourne 2010-03-15 09:37:03

+0

另外,如果您在問題中放置了文章的鏈接,我可以嘗試在我的機器上重現它,並查看可能存在什麼問題? – deanWombourne 2010-03-15 09:38:31

0

它看起來像你缺少一個語句來綁定參數添加到您的SQL選擇語句。你有這個:

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

但你從來沒有設置snapID的值,我可以看到任何地方。你需要這樣的語句執行查詢之前:

sqlite3_bind_int(detailStmt, 1, snapID); 
相關問題