我有我的sqlite數據庫已經建成,並在應用程序啓動時複製。之後,我當然會運行查詢(只需選擇語句)。到目前爲止,除一個查詢外,其他所有查詢都可以工經過一番調查後,它看起來像charNames與空間一些如何得到「?」添加空間的地方。因此,而不是「你好世界」我有「你好?世界」。無論如何,這似乎使我的字符串等於null。ios sqlite排與?沒有閱讀
NSString *querySQL = [NSString stringWithFormat: @"select moveName, moveCommand, moveStance, moveHits, moveType, moveDmg, moveHitRange, moveEscape, moveProperties from Moves where charName='%@' and moveCatagory = '%@';",charName, catName];
NSLog(@"move SQL query: %@",querySQL);
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(myDB, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
const char* moveName = (const char*)sqlite3_column_text(statement, 0);
const char* moveCommand = (const char*)sqlite3_column_text(statement, 1);
const char* moveStance = (const char*)sqlite3_column_text(statement, 2);
const char* moveHits = (const char*)sqlite3_column_text(statement, 3);
const char* moveType = (const char*)sqlite3_column_text(statement, 4);
const char* moveDmg = (const char*)sqlite3_column_text(statement, 5);
const char* moveHitRange = (const char*)sqlite3_column_text(statement, 6);
const char* moveEscape = (const char*)sqlite3_column_text(statement, 7);
const char* moveProperties = (const char*)sqlite3_column_text(statement, 8);
Move * move = [[Move alloc]init];
if (moveName != nil) {
move.moveName = [[NSString alloc] initWithUTF8String:moveName];
NSLog(@"moveName %@",move.moveName);
}
...... ETC複製到每個被查詢的字段
這將與除moveName所有查詢的領域工作。這些移動行中的每一行都有一個標題字段(通常沒有空格),並且該標題每次都會通過,但其餘行都有空格,並且這些行通過爲空。從控制檯
輸出:
2012-05-04 10:35:11.886我Movelist [2938:F803] moveName戳刺
2012-05-04 10:35:11.891我Movelist [ 2938:F803] moveName(空)
2012-05-04 10:35:11.895我Movelist [2938:F803] moveName(空)從終端sqlite3的輸出
:
Jab | 1 |||| 8 | h ||
Forward?Jab | f + 1 |||| 8 | h ||
Down?Jab | d/b + 1 | RC ||| 6 | s ||
僅供參考:爲了簡單起見,我忽略了其他字段,因爲它們似乎工作正常。就像我說的,我認爲它與似乎只存在於名稱字段中的空間有關。
是替換空格的字符。然而,sql REPACE函數從來沒有取代它。我最終在TextWrangler中打開了這個文件,並用一個普通的「空間」來進行查找和替換。現在一切正常,謝謝。 –