Saya mendefinisikan jenis kesalahan khusus dengan sintaks Swift 3 dan saya ingin memberikan deskripsi ramah-pengguna dari kesalahan yang dikembalikan oleh localizedDescription
properti Error
objek. 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 localizedDescription
mengembalikan deskripsi kesalahan khusus saya ("Deskripsi kesalahan yang mudah digunakan oleh pengguna.")? Perhatikan bahwa objek kesalahan di sini adalah tipe Error
dan 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?
MyError
yangError
pertama dan memperpanjangnyaLocalizedError
nanti? Apakah ada perbedaan jika Anda membuatnyaLocalizedError
di tempat pertama?