Konwertowałem z wersji 2 na szybką 3. Zauważyłem, że nie można skonwertować wartości logicznej na wartość całkowitą w swift 3: \.Konwertowanie wartości typu Boolean na wartość całkowitą w swift 3
let p1 = ("a" == "a") //true
print(true) //"true\n"
print(p1) //"true\n"
Int(true) //1
Int(p1) //error
Na przykład te składnie pracował dobrze w szybkim 2. Ale w szybkim 3, print(p1)
daje błąd.
Błąd znajduje error: cannot invoke initializer for type 'Int' with an argument list of type '((Bool))'
rozumiem, dlaczego dzieją się błędy. Czy ktoś może wyjaśnić, co jest przyczyną tego bezpieczeństwa i jak przekonwertować Bool na Int w Swift 3?
Dla Swift 4, zobacz moje [zaakceptowane odpowiedź] (https://stackoverflow.com/a/44423340/1966109) na podobne pytanie. –