2015-08-22 4 views
1

поэтому у меня проблема с моим содержит метод в бета-версии 5. В частности, она говорит, что она недоступна при использовании этого кода:содержит() в Xcode 7 Beta 5

class func createSlot(currentCards: [Slot]) -> Slot { 
    var currentCardValues:[Int] = [] 

    for slot in currentCards { 
     currentCardValues.append(slot.value) 
    } 
    var randomNumber:Int = Int(arc4random_uniform(UInt32(13))) 
    while contains(currentCardValues, randomNumber + 1) { 
     randomNumber = Int(arc4random_uniform(UInt32(13))) 
    } 

Любая помощь будет оценена, не уверен, что это проблема с бета-версией или просто с моей новой работой с Swift 2, поскольку она работает в Xcode 6

+4

"'contains': вызов метода contains() в последовательности". .. Прочтите сообщение об ошибке, оно, em, * содержит * решение. – Moritz

+0

Спасибо, да, я вижу это сейчас. Извините, просто учась, как кодировать ... – andymo

ответ

2

Проблема заключается в том, что contains() больше не является глобальным методом, который принимает последовательность в качестве аргумента. Вместо этого, метод должен быть вызван на последовательность

В вашем случае, вы должны изменить contains(currentCardValues, randomNumber + 1) к currentCardValues.contains(randomNumber + 1)

Swift 1.x

let myNumbers: [Int] = [0, 1, 2, 3, 4] 
let number: Int = 3 
let contains: Bool = contains(myNumbers, number) //true 

Swift 2.x

let myNumbers: [Int] = [0, 1, 2, 3, 4] 
let number: Int = 3 
let contains: Bool = myNumbers.contains(number) //true 
+0

Большое вам спасибо! Это легко прояснилось. – andymo

Смежные вопросы