Bana bir hata örneği sağlamak için NSError
geçersiz kılmaya çalıştığım bir durum var Çok yeniden kullanacağım . Xcode güncelleştirilmiş ve derleyici Cannot override 'init' which has been marked unavailable
diyor "Geçersiz" işaretli "init" geçersiz kılınabilir "boş girdiyi geçersiz kılmayı engeller
public class NAUnexpectedResponseTypeError: NSError {
public convenience init() {
let messasge = "The object fetched by AFNetworking was not of an expected type."
self.init(
domain: "MyDomain",
code: 6782,
userInfo: [NSLocalizedDescriptionKey: messasge]
)
}
}
Swift 2.
dönüştürülen kadarKodum çalışıyordu.
public class NAUnexpectedResponseTypeError: NSError {
public class func error() -> NSError {
let message = "The object fetched by AFNetworking was not of an expected type."
return NAUnexpectedResponseTypeError(
domain: "MyDomain",
code: 6782,
userInfo: [NSLocalizedDescriptionKey: message]
)
}
}
Yani, benim sorum: Böyle bir durumda boş init
yöntemi eklemek için bir yol
- var mı Bunu yaparak etrafında kesmek başardı?
- Eğer 1'e evet ise, bu bir sebepten dolayı kötü bir fikir midir?
- Bu sorunu gidermek için uygun bir yöntem olarak sınıf yöntemiyle geçici çözüm var mı?
DÜZENLEME:
ben sınıf yöntemi ile çözüm daha iyi gibi başka çözüm ile geldi. Yine de boş olmamasına rağmen boş init
yöntemini geçersiz kılamam. NSError
yana
public class NAUnexpectedResponseTypeError: NSError {
public convenience init(message: String?) {
var errorMessage: String
if let message = message {
errorMessage = message
} else {
errorMessage = "The object fetched by AFNetworking was not of an expected type."
}
self.init(
domain: "MyDomain",
code: 6782,
userInfo: [NSLocalizedDescriptionKey: errorMessage]
)
}
}
Burada gösterilenin yanı sıra sınıfınıza daha fazla kod ekliyor musunuz? Çünkü bir alt sınıfın neden gerekli olduğunu merak ediyorum. –
@TomHarrington NSError için bir uzantı gibi bir şey önerir misiniz? – Jonathan