0
當選擇一個可以包含NULL值的列時我得到一個拋出此語句的異常。使用SQLite結果從NULL值列拋出的異常
self.DirectionFromCity = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 8)];
我應該如何設置這些屬性,因爲數據庫的NULL值是可以的。
當選擇一個可以包含NULL值的列時我得到一個拋出此語句的異常。使用SQLite結果從NULL值列拋出的異常
self.DirectionFromCity = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 8)];
我應該如何設置這些屬性,因爲數據庫的NULL值是可以的。
按照文檔NSString拋出一個異常,如果字節是空
什麼,你需要做的是檢查返回值,只有建立一個字符串,如果它不是空
char *localityChars = sqlite3_column_text(compiledStatement, 8);
if (localityChars == nil) {
self.DirectionFromCity = nil;
} else {
self.DirectionFromCity = [NSString stringWithUTF8String: localityChars];
}
迴應下面再代碼與額外的檢查越來越多的評論,你可以使用
self.DirectionFromCity = localityChars != nil?[NSString stringWithUTF8String: localityChars]:nil;
萎縮下來或推出,將做同樣的functi方法onality
self.DirectionFromCity = [self getSQLiteColumn:compiledStatement];
感謝, 哎喲......我有35列可包含空值,這將大量開銷添加到應用程序...... – 2010-03-10 09:57:25
的開銷將非常小,唯一真正的區別在於'if'塊 – Liam 2010-03-10 10:07:22
Liam:我認爲他意味着代碼庫的開銷。 – 2010-03-10 11:02:20