我在显示
的行if let randNumber = arc4random_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)")
}
}
答案 0 :(得分:1)
arc4random_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)")
}
}
答案 1 :(得分:0)
请试试这个
let randNumber = Int(arc4random_uniform(count))
答案 2 :(得分:-1)
在某些情况下,您可能完全确定Objective-C 方法或属性永远不会返回nil对象引用。要做 这个特殊场景中的对象更方便使用,Swift 将对象类型导入为隐式解包的选项。隐 未包装的可选类型包括的所有安全功能 可选类型。此外,您可以直接访问该值而无需 检查零或自己解开。 [source]
所以你可以这样做:
if let randNumber = arc4random_uniform(UInt32(count)) as UInt32!{
}