私はNSDecimalNumber
でプレーしてきたと私は拡張機能を作成したときに、突然のすべてが、私はこのエラーになった:の作成拡張の原因「ERRORTYPEは」への転換ではない「NSError」
'ErrorType' is not convertible to 'NSError'; did you mean to use 'as!' to force downcast?
をしかし、ときに私提案されたようas!
使用し、私は警告を取得しています:
Forced cast from 'NSMutableDictionary!' to '[NSObject : AnyObject]' always succeeds; did you mean to use 'as'?
は、最終的にas?
への変更は私を与えている:
Conditional cast from 'ErrorType' to 'NSError' always succeeds
私が作成した拡張機能は次のとおりです。
extension String {
var decimalValue: NSDecimalNumber? {
let number = NSDecimalNumber(string: self)
return number == NSDecimalNumber.notANumber() ? nil : number
}
}
エラーが発生するコードは次のとおりです。
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
}()
私は拡張子を変更すると、このエラーが消えてしまいます。
var decimalValue: NSDecimalNumber? {
return NSDecimalNumber(string: self)
}
方法私はこの迷惑な警告/エラーを取得せずにこの拡張を行う必要がありますか?
試しましたか?}} dict [NSUnderlyingErrorKey]の代わりにNSError {NSErrorとしてエラーを受け取りましたか? –