【发布时间】:2014-07-26 01:15:54
【问题描述】:
我是一个初学者,我创建了一种井字游戏,并一直在 iPhone 5s 模拟器上运行它以排除问题,刚才我在我的实际 iPhone 5s 上尝试了它,当 AI 时应用程序崩溃了应该轮到它了。 Xcode 在下面一行画了一个错误(EXC_BAD_ACCESS):
//Bunch of functions that check for exact spots:
func checktop(value:Int)->(location:String,pattern:String) {
return ("top", checkFor(value, spots: [1,2,3])) //This line has error
}
func checkbottom(value:Int)->(location:String,pattern:String) {
return ("bottom", checkFor(value, spots: [7,8,9]))
}
func checkmidAcross(value:Int)->(location:String,pattern:String) {
return ("middle across", checkFor(value, spots: [4,5,6]))
}
func checkleft(value:Int)->(location:String,pattern:String) {
return ("left down", checkFor(value, spots: [1,4,7]))
}
func checkmidDown(value:Int)->(location:String,pattern:String) {
return ("middle down", checkFor(value, spots: [2,5,8]))
}
func checkright(value:Int)->(location:String,pattern:String) {
return ("right down", checkFor(value, spots: [3,6,9]))
}
func checkLRdiag(value:Int)->(location:String,pattern:String) {
return ("left-right diagonal", checkFor(value, spots: [1,5,9]))
}
func checkRLdiag(value:Int)->(location:String,pattern:String) {
return ("right-left diagonal", checkFor(value, spots: [3,5,7]))
}
为什么应用程序在模拟器上运行得很好,但在实际设备上却崩溃了?怎么了? 这是我的 checkFor 方法:
func checkFor(value:Int, spots:Int[])->(String) {
var conclusion = ""
for cell in spots {
if plays[cell] == value {
conclusion += "1"
}
else {
conclusion += "0"
}
}
return conclusion
}
func isOccupied(spot:Int)->(Bool) {
return Bool(plays[spot])
}
【问题讨论】:
-
您正在访问已释放的内存。
value可能是nil。 -
@duci9y 所以如果我的
value是nil我该如何修复我的代码?我应该把所有的values 拿出来吗? -
因为那样会搞砸我的其余代码