![](/img/trans.png)
[英]How to get sorted struct into another struct/dictionary using swift3?
[英]How to store database into struct using swift3?
我有一个获取数据库并在MutableArray中返回它的函数,现在我需要数据库位于结构中。
我需要将MutableArray放入结构中还是应该将数据直接放入结构中?
我不知道如何解决这个问题或如何将数据库存储到struct中
我的代码:
class CrimesInfo: NSObject {
var name: String = String()
var detail: String = String()
var time: String = String()
}
功能:
func getAllCrimesData() -> NSMutableArray {
sharedInstance.database!.open()
let resultSet: FMResultSet! = sharedInstance.database!.executeQuery("SELECT * FROM CrimeTable", withArgumentsIn: nil)
let marrCrimesInfo : NSMutableArray = NSMutableArray()
if (resultSet != nil) {
while resultSet.next() {
let crimesInfo : CrimesInfo = CrimesInfo()
crimesInfo.name = resultSet.string(forColumn: "Name")
crimesInfo.detail = resultSet.string(forColumn: "Detail")
crimesInfo.time = resultSet.string(forColumn: "Time")
marrCrimesInfo.add(crimesInfo)
}
}
这里有很多事情。 这是我的一些想法:
getAllCrimesData
实际上获取crimesInfo
。 “数据”或“放入,选择一个,保持一致”。 getAllCrimesData
返回混合在一起的各种数据的数组。 无需这样做,立即填充一些结构,而不必担心稍后将数组解析为结构。 NSArray
, NSDictionary
或它们的可变版本。 使用本机Swift类型。 guard let
或if let
检查来处理resultSet
的可选性,而不是使用隐式展开的可选。 CrimesInfo
CrimesInfo
从NSObject
继承 name
/ detail
/ time
。 我怀疑您是否想要定罪""
。 这是我的写法:
struct CrimeInfo: NSObject {
let name: String
let details: String
let time: String
init(name: String, detail: String, time: String) {
self.name = name
self.details = details
self.time = time
}
init(fromResultSet: FMResultSet) {
self.init(
name: resultSet.string(forColumn: "Name"),
details: resultSet.string(forColumn: "Detail"),
time: resultSet.string(forColumn: "Time")
)
}
}
let CrimesIntoQuery = "SELECT * FROM CrimeTable"
func getAllCrimesInfo() -> [CrimeInfo] {
let database = sharedInstance.database!
database.open()
guard let resultSet = database.executeQuery(CrimesIntoQuery, withArgumentsIn: nil) {
else return []
}
var crimes = [CrimeInfo]()
while resultSet.next() {
crimes.add(CrimeInfo(fromResultSet: resultSet))
}
return crimes
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.