我正在 Xcode 8 和 Swift 3 中创建一个 Puzzle Word 项目,我创建了 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
}
}
这段代码是数据库模型:
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)
}
这是我在控制台中的输出:
最佳答案
let myString = "This is my answer"
let chars = Array(myString)
根据问题的标题,我发布了这段代码,因为它满足从 String 生成字符数组的要求。
所以根据你的代码,你几乎就在那里,但只需删除 String 的 characters 属性,因为它已经是 Sequence :)
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)}
关于ios - 将字符串转换为数组字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45060432/