2017-02-02 2 views
-3

Ich habe den folgenden Code Ich versuche, in Swift 3 zu konvertieren und bekomme diesen seltsamen Fehler "Kann den Wert des Typs Bool nicht in den erwarteten Argumenttyp Int konvertieren". Das Problem entsteht, wenn ich das "++" los werde. Ich verlinke auch zu der Stapelüberlauffrage, die ich vollständig konvertieren möchte. Vielen Dank! Hier ist der vorherige Code und der Code Ich habe versucht, zu konvertieren:Wie konvertiert man ++ oder - in Swift 3?

Zurück Code

func previousTrack() { 
if currentTrack-- < 0 { 
    currentTrack = (playerItems.count - 1) < 0 ? 0 : (playerItems.count - 1) 
} else { 
    currentTrack-- 
} 

playTrack() 

}

konvertierte Code

@IBAction func didTapPreviousButton(_ sender: UIButton) { 
    if currentTrack += 1 < 0 { // Issue occurs here 
     currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1) 
    } else { 
     currentTrack -= 1 
    } 

    playTrack() 

} 

Original question I want to convert to Swift 3

EDIT:

@IBAction func didTapPreviousButton(_ sender: UIButton) { 
    if (currentTrack - 1) <= 0 { 
     currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1) 
    } else { 
     currentTrack -= 1 
    } 

    playTrack() 

} 



@IBAction func didTapNextButton(_ sender: UIButton) { 
    if (currentTrack + 1) >= urlPlayerItems.count { 
     currentTrack = 0 
    } else { 
     currentTrack += 1 
    } 

    playTrack() 
} 
+0

Verbringen Sie eine zusätzliche Zeile, erste Abnahme als Kontrolle haben <0 – vadian

+0

das wäre meine Empfehlung zu –

+0

Warum ersetzen Sie das alte '-' durch '+ ='? Warum nicht '- ='? – rmaddy

Antwort

0

Was Sie IMHO

@IBAction func didTapPreviousButton(_ sender: UIButton) { 
    currentTrack -= 1 
    if currentTrack < 0 { 
     currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1) 
    } 

    playTrack() 
} 

Correct Ersatz von POSTFIX wollen, wie Sie es (nutzlosen)

@IBAction func didTapPreviousButton(_ sender: UIButton) { 
    if currentTrack < 0 { 
     currentTrack -= 1 
     currentTrack = (urlPlayerItems.count - 1) < 0 ? 0 : (urlPlayerItems.count - 1) 
    } 

    playTrack() 
} 
+1

Der ursprüngliche Code nach dem Dekrement verwendet, also 'wenn currentTrack <0 'ohne Dekrementierung zuerst. – vacawama

+0

IMHO das ist nicht was er will, aber es nicht gesehen hat. Ich habe meine Antwort bearbeitet –

+0

Bitte überprüfen Sie meine bearbeitete Version! Wenn möglich, fügen Sie einen Beispielcode hinzu, der mir zeigt, was ich falsch mache. Danke für die Hilfe! – user7097242

Verwandte Themen