2016-03-23 15 views
13

Ö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

enter image description here

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.

+1

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

+1

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

+0

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

cevap

2

Bu, en son sürüm xcode'un bir hatası olabilir. Projenin yeni sürüme geçirilmeden önce kurulması sorunu bu sorunla karşı karşıya kalabilir. Böyle bir sorunla yüzleşecek kadar şanslı olan herkes, hızlı bir 2.2 ortamında yeni bir projeye başlamayı deneyebilir.

+1

Bu, sorunun cevabını sağlamaz. Bir yazardan eleştiri yapmak veya açıklama istemek için yazılarının altında bir yorum bırakın. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/11741417) – veljasije

+0

Lütfen "teşekkür ederim" cevabını eklemeyin. Bunun yerine, en yararlı bulduğunuz ** [cevabı kabul et] (http://stackoverflow.com/help/accepted-answer) **. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/11741417) – PVitt

+0

@PVitt. Tamam anladım. Bu sorun bir xcode hatası olabileceğinden, çözümümü biraz düzenleyeceğim. – fans3210

İlgili konular