我正在從事一個iPhone/Ipod觸摸項目,涉及從sqlite數據庫中保存和提取數據。它工作正常,但在發展某些方面我得到這個錯誤(應用程序啓動時):Sqlite - 「難以理解的歸檔」問題
應用萌發過程中由於未捕獲的異常「NSInvalidArgumentException」,原因:「*** - [NSKeyedUnarchiver initForReadingWithData:]:不知所云存檔(0x4e,0x49,0x42,0x41,0x72,0x63,0x68,0x69)' 2009-11-09 10:08:28.810 FagNavigasjon [1627:20b]
以前我只能解決這個問題通過恢復到發展和持續的更早點。這次我發現如果我註釋掉代碼的某個部分,應用程序不會崩潰。
while(sqlite3_step(selectstmt3)==SQLITE_ROW){
/*
NSString *navn=[[NSString alloc] initWithUTF8String: (char *)sqlite3_column_text(selectstmt3, 0)];
NSString *telefon=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 1)];
NSString *fodselsar=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 2)];
NSString *ariframtiden=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 3)];
NSString *verneplikt=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 4)];
NSString *utdannelse=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 5)];
NSString *epost=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3, 6)];
appDelegate.navn=navn;
appDelegate.epost=epost;
appDelegate.telefon=telefon;
appDelegate.fodselsar=fodselsar;
appDelegate.studiear=ariframtiden;
appDelegate.utdannelse=utdannelse;
appDelegate.verneplikt=verneplikt;
*/
}
但當然,該應用程序不會加載數據了。此代碼以前的工作,並且我沒有改變它之前這個錯誤。但是,我已經向數據庫添加了新記錄,但是當我在SQLite管理器中查看它們時,這些看起來沒有問題。誰能告訴我什麼會導致這個問題?我很感激任何迴應!
感謝您的回答!我嘗試了一點一點地取消註釋,並且它是由第一行導致的allready: NSString * navn = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(selectstmt3,0)]; 據我所知,該行在數據庫中找到,但一旦我開始讀取它,我得到錯誤... 我還沒有檢查出核心數據,但我會。感謝您的建議! – Ezop 2009-11-09 13:48:43