这真令人困惑.有没有人有任何想法?
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)
let viewHasMovedToRight = false 不 let viewHasMovedToRight == false
编辑:看起来你使用==而不是在=任何地方设置布尔值.
| 归档时间: |
|
| 查看次数: |
30586 次 |
| 最近记录: |