0

私は Swift のいくつかのチュートリアルに取り組んでいます。Xcode 6 Beta 6 を使用してコーディングしようとしている TicTacToe チュートリアルに出会いました。辞書で値を確認すると、次のエラーが表示されます。これが私のコードです。

var plays = [Int:Int]()

var whoWon = ["I":0,"you":1]
for (key,value) in whoWon {
if ((plays[6] == value && plays[7] == value && plays[8] == value) || 
    (plays[3] == value && plays[4] == value && plays[5] == value) || 
    (plays[0] == value && plays[1] == value && plays[2] == value) || 
    (plays[6] == value && plays[3] == value && plays[0] == value) || 
    (plays[7] == value && plays[4] == value && plays[1] == value) || 
    (plays[8] == value && plays[5] == value && plays[2] == value) || 
    (plays[6] == value && plays[4] == value && plays[2] == value) ||  // error appears on this line
    (plays[8] == value && plays[4] == value && plays[0] == value))  
 {
    userMessage.hidden = false
    userMessage.text = "Looks like \(key) won!"
 }
4

3 に答える 3

1

同じチュートリアルを行っていました。部分式に分割する必要があるのは少し奇妙に思えますが、うまくいきました 。 can-t-handle-long-expressions/0

Xcodeの問題が原因である可能性があります。

書き直された関数は次のとおりです。

func checkForWin() {
    var whoWon = ["I": 0, "You": 1]
    for (key, value) in whoWon {
        var wonA = (plays[1] == value && plays[2] == value && plays[3] == value)
        var wonB = (plays[4] == value && plays[5] == value && plays[6] == value)
        var wonC = (plays[7] == value && plays[8] == value && plays[9] == value)
        var wonD = (plays[1] == value && plays[4] == value && plays[7] == value)
        var wonE = (plays[2] == value && plays[5] == value && plays[8] == value)
        var wonF = (plays[3] == value && plays[6] == value && plays[9] == value)
        var wonG = (plays[1] == value && plays[5] == value && plays[9] == value)
        var wonH = (plays[3] == value && plays[5] == value && plays[7] == value)

        if(wonA || wonB || wonC || wonD || wonE || wonF || wonG || wonH) {
                userMessage.hidden = false
                userMessage.text = "Looks like \(key) won!"
                resetBtn.hidden = false
                done = true
        }
    }
}
于 2014-10-14T13:38:07.903 に答える
0

Report Navigator で完全なコンパイラ出力を見ると、次のメッセージが表示されます。

注: 式が複雑すぎて妥当な時間内に解決できませんでした。式を別個のサブ式に分割することを検討してください

問題を解決する方法を教えてくれます。

于 2014-09-03T21:47:34.213 に答える