Ich habe mit NSDecimalNumber
spielen und wenn ich eine Erweiterung geschaffen, ganz plötzlich war ich diesen Fehler:Erstellen Erweiterung Ursachen ‚Errortype‘ ist nicht konvertierbar ‚NSError‘
'ErrorType' is not convertible to 'NSError'; did you mean to use 'as!' to force downcast?
Aber als ich verwenden as!
wie vorgeschlagen, ich bin die Warnung erhalten:
Forced cast from 'NSMutableDictionary!' to '[NSObject : AnyObject]' always succeeds; did you mean to use 'as'?
Wechsel Schließlich zu as?
gibt mir:
Conditional cast from 'ErrorType' to 'NSError' always succeeds
Die Erweiterung I erstellt ist:
extension String {
var decimalValue: NSDecimalNumber? {
let number = NSDecimalNumber(string: self)
return number == NSDecimalNumber.notANumber() ? nil : number
}
}
Der Code, der den Fehler verursacht ist:
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent(self.storeFile)
var failureReason = "There was an error creating or loading the application's saved data."
do {
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
} catch {
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
---> dict[NSUnderlyingErrorKey] = error as NSError <---
let error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
NSLog("Unresolved error \(error), \(error.userInfo)")
abort()
}
return coordinator
}()
Wenn ich ändern Sie die Erweiterung dieser Fehler verschwunden sein:
var decimalValue: NSDecimalNumber? {
return NSDecimalNumber(string: self)
}
Wie sollte ich diese Erweiterung machen, ohne diese nervige Warnung/Fehler zu bekommen?
Haben Sie versucht} catch Let Fehler als NSError {statt dict [NSUnderlyingErrorKey] = Fehler als NSError? –