【发布时间】:2014-11-13 22:40:02
【问题描述】:
我正在使用 Cocoa 进行 O'Reilly 的 Swift Development 并收到以下错误:
Bound value in a conditional binding must be of Optional type
针对以下代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var dynamicAnimator = UIDynamicAnimator()
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if let dynamicAnimator = UIDynamicAnimator(referenceView: self.view) {
// creating and adding a gravity behaviour
let gravityBehaviour = UIGravityBehavior(items: [self.imageView])
dynamicAnimator.addBehavior(gravityBehaviour)
// creating and adding a collision behaviour
let collisionBehaviour = UICollisionBehavior(items: [self.imageView])
collisionBehaviour.translatesReferenceBoundsIntoBoundary = true
dynamicAnimator.addBehavior(collisionBehaviour)
self.dynamicAnimator = dynamicAnimator
}
}
}
错误在于这一行:
if let dynamicAnimator = UIDynamicAnimator(referenceView: self.view) {
当我向 dynamicAnimator 添加一个问号以使其成为可选时,我得到了新的错误:
Expected '{' after 'if' condition
Variable binding in a condition requires an initializer
Braced block of statements is an unusual closure
我现在正在阅读可选类型以尝试理解它们,但这是直接来自书中的代码。我检查了他们的论坛和勘误部分,没有人提到这个问题。有人有什么想法吗?
谢谢
【问题讨论】: