我有一个保存为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)
答案 0 :(得分:4)
如果您尝试从数据库中获取图片名称并且图片在您的资源中,那么您应该检查您的correctPicture
是否与资产中的图片名称相同。
如果您尝试从数据库获取图像数据,那么您做错了。
首先,您需要从数据库获取数据,而不是字符串。你应该打电话给
let correctPicture = rightAnswer.dataForColumn("picture")
并使用
将此NSData传递给UIImagememberPic.image = UIImage(data: correctPicture)
你正在做的是向UIImage传递它应该在资产中寻找的图像的名称。
将next
包装在if语句中也是一个好习惯:
if rightAnswer.next(){
// do stuff
}