Why does the following swift code bring me the error "Unary operator '++' cannot be applied to an operand of type 'Int'" ??? (using swift-1.2 on Xcode-6.3.2)
struct Set {
    var player1Games: Int
    var player2Games: Int
    init() {
        self.player1Games = 0
        self.player2Games = 0
    }
    func increasePlayer1GameScore () {
        player1Games++   // error: Unary operator '++' cannot be applied to an operand of type 'Int'
    }
    func increasePlayer2GameScore () {
        player2Games++   // error: Unary operator '++' cannot be applied to an operand of type 'Int'
    }
}
The error message is a bit misleading. What you need to do is add mutating before func to specify that it will modify the struct:
struct MySet {
    var player1Games: Int
    var player2Games: Int
    init() {
        self.player1Games = 0
        self.player2Games = 0
    }
    mutating func increasePlayer1GameScore() {
        player1Games++
    }
    mutating func increasePlayer2GameScore() {
        player2Games++
    }
}
Note: Set is a type in Swift, I would suggest to use a different name for your struct.
Use the mutating keyword before a function declaration to indicate you're mutating the class variables.
OR
Change your struct to a class.
This should fix your issues :).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With