带有swift的布尔值

Geo*_*sda 3 ios swift

这真令人困惑.有没有人有任何想法?

let viewHasMovedToRight == false //initially I want this to be false
Run Code Online (Sandbox Code Playgroud)

然后

func moveViewToRight(sender: UIButton!) {
        if viewHasMovedToRight == false {               
            viewHasMovedToRight == true;

            UIView.animateWithDuration(
                0.75,
                animations: {},
                completion: { (value: Bool) in
                     println(" moved")                     
                }
            )
        }                
        else {                
            viewHasMovedToRight == false;             
            UIView.animateWithDuration(
                0.75,
                animations:{},
                completion:{ (value: Bool) in                     
                    println("not moved")                       
                }
            )
        }

       // println("move view")
    }
Run Code Online (Sandbox Code Playgroud)

只有第一个if叫.我无法将值重新分配给true ...

Obj-C现在用swift这么容易的东西是如此令人沮丧......

rob*_*off 21

你有两个问题.

一,你正在使用==(测试相等)你应该使用的=(它分配一个值).二,您声明一个常量,然后尝试为它分配一个新值.你需要声明一个变量.

var viewHasMovedToRight = false

...
    viewHasMovedToRight = true
Run Code Online (Sandbox Code Playgroud)

此外,大多数人会发现这种if情况更容易理解:

if !viewHasMovedToRight {
Run Code Online (Sandbox Code Playgroud)

如果你要颠倒你的if条款的顺序,那就更简单了:

if viewHasMovedToRight {
    viewHasMovedToRight = false
    ...
} else {
    viewHasMovedToRight = true
    ...
}
Run Code Online (Sandbox Code Playgroud)


Ada*_*o13 5

let viewHasMovedToRight = falselet viewHasMovedToRight == false

编辑:看起来你使用==而不是在=任何地方设置布尔值.