Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 条件绑定中的绑定值必须是可选类型_Ios_Swift - Fatal编程技术网

Ios 条件绑定中的绑定值必须是可选类型

Ios 条件绑定中的绑定值必须是可选类型,ios,swift,Ios,Swift,如果让randNumber=arc4random\u uniform(UInt32(count))这一行出现错误 条件绑定中的绑定值必须是可选类型 我可能错了,但我认为我必须将UInt32值更改为可选值,但如果是这种情况,我该怎么做?如果不是,那么我需要更改什么以成为可选类型 var query = PFQuery(className: "VoteCount") query.countObjectsInBackgroundWithBlock { (count: I

如果让randNumber=arc4random\u uniform(UInt32(count))这一行出现错误

条件绑定中的绑定值必须是可选类型

我可能错了,但我认为我必须将UInt32值更改为可选值,但如果是这种情况,我该怎么做?如果不是,那么我需要更改什么以成为可选类型

    var query = PFQuery(className: "VoteCount")
    query.countObjectsInBackgroundWithBlock {
        (count: Int32, error: NSError!) -> Void in
        if error == nil {
            if let randNumber = arc4random_uniform(UInt32(count)) {
                println("The random object is \(randNumber)\")
            }
        } else {
            println("error \(error)")
        }
    }
请试试这个

let randNumber = Int(arc4random_uniform(count))

arc4random\u uniform
的返回类型是
UInt32
,而不是
UInt32?
,因此不需要条件。所以你可以选择:

var query = PFQuery(className: "VoteCount")
query.countObjectsInBackgroundWithBlock {
    (count: Int32, error: NSError!) -> Void in
    if error == nil {
        let randNumber = arc4random_uniform(UInt32(count))
        println("The random object is \(randNumber)")
    } else {
        println("error \(error)")
    }
}
在某些情况下,您可能绝对肯定,Objective-C 方法或属性从不返回nil对象引用。使 这个特殊场景中的对象使用起来更方便,Swift 将对象类型作为隐式展开的选项导入。含蓄地 未包装的可选类型包括的所有安全功能 可选类型。此外,您可以直接访问该值,而无需 检查零或自己打开包装

所以你可以这样做:

if let randNumber = arc4random_uniform(UInt32(count)) as UInt32!{ 
}