FMResultSet 在另一个 ViewController 中返回 nil
FMResultSet returning nil in another ViewController
我正在使用 FMDB 包装器,因为我的 database.I 可以使用 FMResultSet 获取数据,但是当我尝试 return FMResultSet 到另一个 ViewController 时,它 returns nil.I 从这里调用我的数据库
var resultSet: FMResultSet! = db.getUserById(1)
if(resultSet != nil) {
self.setUserInfo(resultSet)
}
这是我的数据库编码部分
func getUserById(userId: Int) -> FMResultSet {
let sharedInstance = DatabaseHandler()
var database: FMDatabase? = nil
var resultSet: FMResultSet! = sharedInstance.database!.executeQuery("SELECT * FROM user_info WHERE user_id = ?", withArgumentsInArray: [userId])
if(resultSet != nil) {
while resultSet.next() {
var name: String = "USER_NAME"
var location = "USER_LOCATION"
println("Name: \(resultSet.stringForColumn(name))")
println("Location: \(resultSet.stringForColumn(location))")
}
}
sharedInstance.database!.close()
return resultSet
}
当我打印这些值时,它在控制台中显示这些值,但是当我returning resultSet 时,它似乎是 nil
我到底做了什么?
您的结果集仅在数据库打开时有效。 Return 结果集以外的东西(即包装器 object/dictionary/whatever)。通常,您迭代 resultSet 并提取您需要的内容并使用它。或者,您将结果集分发给调用者,它 调用 .next
并在完成后关闭它。
我正在使用 FMDB 包装器,因为我的 database.I 可以使用 FMResultSet 获取数据,但是当我尝试 return FMResultSet 到另一个 ViewController 时,它 returns nil.I 从这里调用我的数据库
var resultSet: FMResultSet! = db.getUserById(1)
if(resultSet != nil) {
self.setUserInfo(resultSet)
}
这是我的数据库编码部分
func getUserById(userId: Int) -> FMResultSet {
let sharedInstance = DatabaseHandler()
var database: FMDatabase? = nil
var resultSet: FMResultSet! = sharedInstance.database!.executeQuery("SELECT * FROM user_info WHERE user_id = ?", withArgumentsInArray: [userId])
if(resultSet != nil) {
while resultSet.next() {
var name: String = "USER_NAME"
var location = "USER_LOCATION"
println("Name: \(resultSet.stringForColumn(name))")
println("Location: \(resultSet.stringForColumn(location))")
}
}
sharedInstance.database!.close()
return resultSet
}
当我打印这些值时,它在控制台中显示这些值,但是当我returning resultSet 时,它似乎是 nil
我到底做了什么?
您的结果集仅在数据库打开时有效。 Return 结果集以外的东西(即包装器 object/dictionary/whatever)。通常,您迭代 resultSet 并提取您需要的内容并使用它。或者,您将结果集分发给调用者,它 调用 .next
并在完成后关闭它。