2017-07-12 288 views
0

我在Xcode 8和斯威夫特3創建一個謎字的項目,我創建的SQLite文件和plist文件,SQLite的文件有3列ID,問題和答案,所有這些列(串),當然除了ID是一個整數,我的plist文件是字符字母排列,我的問題是如何列號3(答案)從字符串轉換爲字符數組一樣的plist不帶引號和方括號? 這是我的代碼以SQLite數據庫(DatabaseHelper)字符串轉換爲字符數組

import GRDB 

class DatabaseHelper { 

    var dbQueue: DatabaseQueue = { 

     var db: DatabaseQueue = DatabaseQueue() 

     do { 

      db = try DatabaseQueue(path: Bundle.main.path(forResource: "testDB", ofType: "sqlite")!) 
      print("Connect database sqlite is OK...") 

     } catch { 

      print("Connect databse fail !!!") 

     } 

     return db 

    }() 

    func getDatabase(rowId: Int) -> [DatabaseModel] { 

     var listDatabase = [DatabaseModel]() 

     dbQueue.inDatabase { db in 

      do { 

       for row in try Row.fetchAll(db, "select * from QuestionTable where Id = \(rowId)") { 

        let newDatabase = DatabaseModel() 
        newDatabase.id = row.value(named: "Id") as Int 
        newDatabase.ques = row.value(named: "question") as String 
        newDatabase.ans = row.value(named: "answer") as String 

        listDatabase.append(newDatabase) 

       } 

      } catch { 

       print("Get all database fail !!!") 

      } 

     } 

     return listDatabase 

    } 

} 

連接而這種代碼是DatabaseModel:

import Foundation 

class DatabaseModel: NSObject { 

    var id: Int? 
    var ques: String? 
    var ans = String() 

} 

此代碼從數據庫調用:

var dbHelpr = DatabaseHelper() 
var listdata = [DatabaseModel]() 

let pathRes = Bundle.main.path(forResource: fileName, ofType: fileExt) 
     let pathDict = NSDictionary(contentsOfFile: pathRes!) 
     var letters : [String] = pathDict?.object(forKey: "Letters") as! [String] 
     listdata = dbHelpr.getDatabase(rowId: id) 

//  print("\(letters.shuffled())") 

     for data in listdata { 

      let dataAnswer : String = data.ans 

      let dataArrayAnswer = Array(dataAnswer.characters) 
      print(dataAnswer) 
      let lastLetters = letters.append(String(describing: dataArrayAnswer)) 
      print(lastLetters) 

     } 

而且這是我在輸出控制檯:

enter image description here

+0

你試圖解決什麼問題? – BallpointBen

+0

我的問題我想從SQLite數據庫轉換我的字符串數組的字符@BallpointBen –

+0

什麼是你正在試圖解決更大的問題? – BallpointBen

回答

1
let myString = "This is my answer" 
let chars = Array(myString) 

根據問題的標題,我發佈此代碼,因爲它滿足從String中製作字符數組的要求。

所以要根據你的代碼,你幾乎沒有,但只是刪除字符串中的字符屬性,因爲它已經是序列:)

let dataArrayAnswer = Array(dataAnswer) 

for char in dataArrayAnswer{ 
//Prints next char of whatever your string is... 
print(char) 
} 

編輯:另一種方法可能是這個,因爲它的字符數組轉換成字符串數組:

let dataArrayAnswer: [String] = dataAnswer.characters.map{String($0)} 
+0

謝謝你,但是當我刪除字符告訴我的錯誤(不能與類型的參數列表調用初始化類型「陣<_>」「(字符串)」)! 我該如何解決呢?! –

+0

你使用哪個Swift版本? –

+0

我使用斯威夫特3 –