Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ';装订';无法在Swift中使用SQLite转换为UILabel_Ios_Swift_Sqlite.swift - Fatal编程技术网

Ios ';装订';无法在Swift中使用SQLite转换为UILabel

Ios ';装订';无法在Swift中使用SQLite转换为UILabel,ios,swift,sqlite.swift,Ios,Swift,Sqlite.swift,我第一次在这里讨论一个与SQLite.Swift库有关的Swift问题 对于db.prepare语句,我有一个for循环,但在尝试将数组值分配给UILabel时,我被卡住了 // Prepare query to retrieve the message var _phraseMessage:String = "" let _stmt = _db.prepare("SELECT id, message FROM messages WHERE language = 'EN' AND

我第一次在这里讨论一个与SQLite.Swift库有关的Swift问题

对于db.prepare语句,我有一个for循环,但在尝试将数组值分配给UILabel时,我被卡住了

    // Prepare query to retrieve the message
var _phraseMessage:String = ""    
let _stmt = _db.prepare("SELECT id, message FROM messages WHERE language = 'EN' AND category = 1 and username = 'user' LIMIT 1")

            for row in _stmt {

                println("id: \(row[0]), message: \(row[1])")

                self._phraseMessageLabel = row[1] --> i get an error here **"'Binding' is not convertible to UILabel"**


            }
如何将
行[1]
中的值分配给我的UILabel?如果可能的话,最好使用字符串变量

提前谢谢


免责声明:这是我第一次尝试使用Swift+第三方库

您试图将
UILabel
属性本身设置为您的值-您想将标签上的
文本
属性设置为您的值:

self._phraseMessageLabel.text = row[1] as! String
如果要将值指定给变量,请执行以下操作:

var message = row[1] as! String

需要注意的是,在这两种方法中,标签文本或变量最终只会被设置为返回的最后一行的值,即
for
循环最后处理的那一行。

除了上面的Undo修复之外,我还想提供一些其他解决方案

  • 如果只使用单个值,请尝试使用
    数据库.scalar
    语句.scalar
    ,如上面的示例所示

    // make sure to remove "id" from your SELECT statement
    self._phraseMessageLabel.text = _stmt.scalar() as! String
    
    注意:确保从SELECT语句中删除
    id
    <代码>标量仅返回第一行的第一列

  • 使用
    语句.row
    光标

    _stmt.step()
    self._phraseMessageLabel.text = _stmt.row[1]