2017-07-12 248 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 –