2012-05-04 23 views
0

我有我的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 ||

僅供參考:爲了簡單起見,我忽略了其他字段,因爲它們似乎工作正常。就像我說的,我認爲它與似乎只存在於名稱字段中的空間有關。

回答

0

您正在查看錯誤數據。 實際上是 或你應該能夠通過REPLACE函數將你的SQL替換成你想要的正常空間。 null可能是字符不是UTF8兼容的結果。

欲瞭解更多信息,請參閱此linkpost

+0

是替換空格的字符。然而,sql REPACE函數從來沒有取代它。我最終在TextWrangler中打開了這個文件,並用一個普通的「空間」來進行查找和替換。現在一切正常,謝謝。 –