Öncelikle yardımlarınız için minnettarız. Dün Xcode'u geliştirdim. Birkaç sorunla karşılaştım ama Natashatherobot'tan "hızlı 2.2'deki yenilikler" konularını takip ederek bunları hızlı bir şekilde düzelttim. Ama düzeltemediğim bir sorun var. UIFont'un 2.2 sürümünde piyasaya sürülen başlatılamaz başlatıcıları hakkında. Ekli hızlı 2.2 hata bildirir basit bir kod parçasıdır. Projeyi temizleyene kadar hatayı hemen bildirmeyebilir. swift 2.2: tembel özellikteki failable başlatıcılar
Here is the screenshot of the error
lazy var somelabel: UILabel = {
let label = UILabel()
let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10) //this line gave me error
label.font = font
label.text = "Calculating..."
return label
}()
hatadır (name:, boyutu: CGFloat) -> UIFont 'dönüştürülebilen değildir' (name:, boyutu: CGFloat) -> UIFont?'
ben iki şekilde çözebilirsiniz:
Yöntem 1: 'tembel örnekleme' kapatılmasıyla let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10)
: bu çizgiyi koymayın.
Yöntem 2 (bilgisayarlı özellikler raporlarında hiçbir hata koy): kullanmak yerine: o başlatıcı yapar çünkü bunun, aşağıda
UIFont(name: "somefont", size: 10)
kullanım (Ancak bu doğru yaklaşım olmalı sanmıyorum daha "objc" tarzı):
UIFont.init(name: "somefont", size: 10)
Ama tembel mülkiyet kapanmasında bana hata rapor verecek hala neden anlamıyorum. Birisi bana bazı açıklamalar verebilirse çok sevinirim.
Gerçekten mi? 'Init' kelimesinin içine koymak bu işi yapar mı? Sen bir dahisin! Bunu bir cevap olarak vermelisin. Bu ciddi bir hatadır ve zaten bir geçici çözüm buldunuz. – matt
Oh ve sorunu yeniden üretebilirseniz, lütfen Apple ile bir hata raporu gönderin. (Çok fazla haşhaş gibi görünse de, çoğaltamıyorum.) – matt
Teşekkürler @matt, projenizi temizlediyseniz, eklediğim kod parçasını kullanarak sorunu çoğaltabileceğinizi düşünüyorum. Bunun, 2.2 sürümündeki tembel özellikler için bir hata mı yoksa varsayılan davranış mı olduğundan emin değilim. Aynı zamanda, eğer bu sadece benim xcode'umda olsaydı, ben – fans3210