Emre Esen Emre Esen - 1 year ago 273
iOS Question

Argument type 'Range<Int>' does not conform to expected type 'Sequence' Swift3

Hi i get error after Swift3. How can i fix this error? These methods provide non-repeated random numbers.

func uniqueRandoms(_ count: Int, inRange range: Range<Int>, blacklist: [Int] = []) -> [Int] {
var r = [Int](range)
.filter{ !blacklist.contains($0) }

return Array(r[0..<count])

extension Array {
func shuffle() -> Array<Element> {
var newArray = self

for i in 0..<newArray.count {
let j = Int(arc4random_uniform(UInt32(newArray.count)))
guard i != j else { continue }
swap(&newArray[i], &newArray[j])

return newArray


Answer Source

Use the lowerBoundand upperBound property of range to create sequence for Array of [Int].

var r = [Int](range.lowerBound..<range.upperBound)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download