Swift 3 sözdizimi ile özel bir hata türünü tanımlıyorum ve Error
nesnesinin localizedDescription
özelliğiyle döndürülen hatanın kullanıcı dostu bir açıklamasını sağlamak istiyorum. Nasıl yapabilirim?Swift'de bir Hata türü ile yerelleştirilmiş bir açıklama nasıl sağlanır?
public enum MyError: Error {
case customError
var localizedDescription: String {
switch self {
case .customError:
return NSLocalizedString("A user-friendly description of the error.", comment: "My error")
}
}
}
let error: Error = MyError.customError
error.localizedDescription
// "The operation couldn’t be completed. (MyError error 0.)"
benim özel hata açıklamasını geri dönmek localizedDescription
için bir yol var mı ("hatanın bir kullanıcı dostu bir açıklama.")? Buradaki hata nesnesinin Error
türünde ve MyError
değil olduğunu unutmayın. Ben, tabii, MyError
(error as? MyError)?.localizedDescription
nesneyi yayınlayabilirsiniz ama benim hata türüne çevrim olmadan çalışmasını sağlamak için bir yol var?
Xcode 8 beta 6 sürüm notları olarak tarif edildiği gibi
Eğer 'Bir' Error' birinci ve sonradan LocalizedError' 'ile bunu genişletmek MyError' yapmak bir sebebi var mı? İlk etapta bir "LocalizedError" yaptıysanız bir fark var mı? –
@ Gee.E: Fark etmez. Kodu düzenlemenin bir yolu (her protokol için bir uzantı). Http: // stackoverflow öğesini karşılaştırın.com/questions/36263892/extensions-in-kendi-özel-sınıf, http://stackoverflow.com/questions/40502086/how-to-properly-use-class-extensions-in-swift veya https://www.natashatherobot.com/using-swift-extensions/. –
Ah, kontrol edin. Şimdi söylediklerinizi alıyorum. Https://www.natashatherobot.com/using-swift-extensions/ adresindeki "Protokol Uygunluğu" bölümü gerçekten ne demek istediğinizin iyi bir örneğidir. Teşekkürler! –