在Swift中显示来自SQLite Blob的图像

时间:2015-03-15 23:00:04

标签: ios sqlite swift

我有一个保存为blob的图像的SQLite数据库(我相信我已经正确地完成了这个,但这是我第一次,我不知道如何检查)。我现在正试图访问该数据库以在我的iPhone应用程序中显示图像。

我的代码没有显示任何错误,但图片不会更改。我也正在从数据库中读取一个文本字段并单独显示该字符串,并且工作正常,所以我知道我至少正确地访问了数据库。

let querySQL = "SELECT name, picture from member_data where picture is not 'None' ORDER BY RANDOM() LIMIT 1";
let rightAnswer:FMResultSet = memberDatabase.executeQuery(querySQL, withArgumentsInArray: nil)
rightAnswer.next()
let correctName = rightAnswer.stringForColumn("name")
let correctPicture = rightAnswer.stringForColumn("picture")
memberPic.image = UIImage(named: correctPicture)

1 个答案:

答案 0 :(得分:4)

如果您尝试从数据库中获取图片名称并且图片在您的资源中,那么您应该检查您的correctPicture是否与资产中的图片名称相同。

如果您尝试从数据库获取图像数据,那么您做错了。

首先,您需要从数据库获取数据,而不是字符串。你应该打电话给

let correctPicture = rightAnswer.dataForColumn("picture")

并使用

将此NSData传递给UIImage
memberPic.image = UIImage(data: correctPicture)

你正在做的是向UIImage传递它应该在资产中寻找的图像的名称。

next包装在if语句中也是一个好习惯:

if rightAnswer.next(){
   // do stuff
}
相关问题