Мне нужен быстрый оптимальный способ создания оператора if else, который проверяет строку и несколько строк

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "ANY OF MULTIPLE STRINGS 'x1'-'x9'"{
        let JVC = segue.destinationViewController as VC3
        JVC.betSource = segue.identifier!     
    } else {
        let KVC = segue.destinationViewController as VC2
        KVC.source = segue.identifier!
    }

Следует ли мне использовать строку Array:, сделать 9 разных if / else или что-то совершенно другое?

Я не знаю, что бы запускать код наиболее оптимально. пожалуйста, порекомендуйте

1
Chameleon 13 Мар 2015 в 08:00

4 ответа

Лучший ответ

Самый оптимальный способ - составить массив возможных совпадений, а затем использовать contains для поиска определенной строки в этом массиве.

let array = ["a", "b", "c"]

if contains(array, segue.identifier) {
    // String found in array
}
3
Ian 13 Мар 2015 в 05:19

Попробуйте следовать коду .......

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
{
    var string = "ANY OF MULTIPLE STRINGS 'x1'-'x9'"

    if string.rangeOfString(segue.identifier) != nil 
    {
        let JVC = segue.destinationViewController as VC3
        JVC.betSource = segue.identifier!     
    }
    else
    {
        let KVC = segue.destinationViewController as VC2
        KVC.source = segue.identifier!
    }
}
0
Nirav Gadhiya 13 Мар 2015 в 05:22
var str = "x1 x2 x3 x4 x5 x6 x7 x8 x9"
if(str.rangeOfString(segue.identifier)) 
let JVC = segue.destinationViewController as VC3
    JVC.betSource = segue.identifier!     
} else {
    let KVC = segue.destinationViewController as VC2
    KVC.source = segue.identifier!
}
0
Bimawa 13 Мар 2015 в 05:20

Вы должны использовать switch в этом случае:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    switch segue.identifier! {
    case "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9":
        let JVC = segue.destinationViewController as VC3
        JVC.betSource = segue.identifier!
    default:
        let KVC = segue.destinationViewController as VC2
        KVC.source = segue.identifier!
    }
}
1
rintaro 13 Мар 2015 в 06:18