shadokyr
shadokyr

Reputation: 65

Swift 2 Error: Argument labels '(value:)' do not match any available overloads

I am trying to randomize circles falling for my rhythm game, but I can't seem to get it to work. This is the closest I have gotten:

var alternator = 0
var fallTimer:NSTimer?
var flag:Bool = true

let circleIndexes = (0..<5).map { return NSNumber(value: $0) }

let randomIndexes = GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(circleIndexes) as! [Int]

func fallCircleWrapper() {

    if (flag == true) {
        self.alternator += 1
    } else {
        self.alternator -= 1
    }

    if (self.alternator == 0) {
        flag = true
    } else if (self.alternator == 5) {
        flag = false
    }

    self.hitAreaArray[randomIndexes[self.alternator]].emitNote(self.texture!)
}

The error occurs in this line:

let circleIndexes = (0..<5).map { return NSNumber(value: $0) }

I am new to this so forgive me if there is an easy solution I am not seeing, and please feel free to suggest a better way of going about this if you have one. Thanks.

Upvotes: 0

Views: 54

Answers (2)

Nebojsa Nadj
Nebojsa Nadj

Reputation: 631

This is Swift 3 code.

NSNumber(value:)

Swift 2 version:

NSNumber(integer:)

You just need to change to this

let circleIndexes = (0..<5).map { return NSNumber(integer: $0) }

Upvotes: 1

brimstone
brimstone

Reputation: 3400

That's Swift 3 code. The initializer for Swift 2 NSNumber is:

NSNumber(integer: ...)

So, your line would become:

let circleIndexes = (0..<5).map { return NSNumber(integer: $0) }

Upvotes: 1

Related Questions