Saya mendefinisikan jenis kesalahan khusus dengan sintaks Swift 3 dan saya ingin memberikan deskripsi ramah-pengguna dari kesalahan yang dikembalikan oleh localizedDescriptionproperti Errorobjek. Bagaimana saya bisa melakukannya?
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.)"
Apakah ada cara untuk localizedDescriptionmengembalikan deskripsi kesalahan khusus saya ("Deskripsi kesalahan yang mudah digunakan oleh pengguna.")? Perhatikan bahwa objek kesalahan di sini adalah tipe Errordan bukan MyError. Saya bisa, tentu saja, melemparkan objek ke MyError
(error as? MyError)?.localizedDescription
tetapi apakah ada cara untuk membuatnya bekerja tanpa melakukan casting ke tipe kesalahan saya?
MyErroryangErrorpertama dan memperpanjangnyaLocalizedErrornanti? Apakah ada perbedaan jika Anda membuatnyaLocalizedErrordi tempat pertama?