iOS geliştirme ve hızlı bir şekilde göreceli olarak yeniyim. Ancak bu noktaya kadar her zaman, stackoverflow ve çeşitli dökümantasyon ve eğitimler üzerine bir araştırma yaparak kendime yardımcı olabiliyordum. Bununla birlikte, henüz bir çözüm bulamadığım bir sorun var.Swift - N12
Kullanıcı adres defterinden bazı veriler almak istiyorum (örneğin, tek değerli özellik kABPersonFirstNameProperty
). .takeRetainedValue()
işlevi, bu kişinin adres defterinde bir firstName değeri yoksa bir hata attığından, ABRecordCopyValue()
işlevinin bir değer döndürdüğünden emin olmalıyım. Bir kapatma bu kontrol etmeye çalıştı:
let contactFirstName: String = {
if (ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty) != nil) {
return ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty).takeRetainedValue() as String
} else {
return ""
}
}()
contactReference
tip ABRecordRef!
Porte Adres temasın firstName değer sağlar
, her şey gayet iyi çalışıyor bir değişkendir. Ancak, firstName değilse, uygulama .takeRetainedValue()
işlevi tarafından çöküyor. Görünüşe göre, if deyimi yardımcı olmadığından, ABRecordCopyValue()
işlevinin yönetilmeyen döndürme değeri, hiç bir ad olmadığı halde sıfır değildir.
Umarım problemimi netleştirebildim. Birisi bana beyin dalgasıyla yardım ederse harika olurdu.
İkinci versiyonunu beğendim. Bunun için teşekkür ederim! – Rob
Birkaç gün sonra aradığım cevap THIS oldu! Paylaştığın için çok teşekkürler! – kev
Seçenek 1 harikalar yaratıyor – Dean