1) birinci kod çalışır. Sonra hat
let widthLabel = label + String(width)
on widthLabel
oluşturmak için, +
operatörle, dizeleri bitiştirmek ediyoruz.
2) Swift hata iletileri oldukça yanıltıcı olabilir, gerçek sorun String
götüren bir init
yöntemi yoktur Int
olduğunu. Bu durumda, String
'da toInt
yöntemini kullanabilirsiniz. İşte bir örnek: String
başarısız olursa nil
dönecektir bir Int
toInt
beri dönüştürülebilir kontrol etmek
if let h = height.toInt() {
let heightNumber = number + h
}
Sen kullanmalı ve if let
beyanı; Bu durumda unwrapping zorlamak uygulamanızı çökertecek. height
ne olacağını aşağıdaki örneğe bakın bir Int
dönüştürülebilen değildi:
let height = "not a number"
if let h = height.toInt() {
println(number + h)
} else {
println("Height wasn't a number")
}
// Prints: Height wasn't a number
Swift 2.0 Güncelleme:
Int
şimdi örnek olması için, bir String
alır Başlatıcı bir sahiptir 2 (yukarıya bakınız):
if let h = Int(height) {
let heightNumber = number + h
}
Ayrıca bu sorunun cevabına da bakınız (http: //stackoverflow.com/questions/40557214/swift-operator-throwing-error-on-two-ints). Esasen, eğer A halihazırda CGFloat'ın bir Çifti veya her ne ise, ve B ve C tamsayılar olarak bildirilmişse, A = B + C, gerçek sorunu ve çözümü engelleyen bu hata mesajıyla başarısız olacaktır: A = Çift (B + C) . Bu soru/cevap, bu hatanın Google aramasının üstündedir; Bazı durumlarda diğer sorunun cevabı daha yararlı olabilir. – ConfusionTowers