【发布时间】:2018-09-05 06:12:49
【问题描述】:
我刚刚开始熟悉 Objective-C,因为我的主要语言是 Swift。而且我找不到使用 Objective-c 枚举处理错误情况的最佳方法,因为我可以使用 Swift 做同样的事情。
例如在 Swift 中,我可以使用方便的枚举来处理错误:
import Foundation
public enum ErrorCases: Error, LocalizedError {
case invalidURL(String)
case JSONStringConversionError(String)
case JSONStringifyError(Any?)
case hashArrayCastError(Any)
public var localizedDescription: String {
switch self {
case .invalidURL(let url): return "Invalid URL: \(url)."
case .JSONStringConversionError(let jsonString): return "Cannot convert string to JSON, string: \(jsonString)."
case .JSONStringifyError(let data): return "Cannot stringify JSON dictionary with 'Any' data to a string, data: \(String(describing: data))."
case .hashArrayCastError(let hashArray): return "Cannot cast JSON with '#' key to an arrray of 'Any' objects from massage, JSON: \(hashArray)."
}
}
}
现在我可以像这样使用那个枚举了:
if error != nil {
self.onError(error: ErrorCases.invalidURL(self.mUrl))
}
您能否推荐一种更好的方法来实现相同的错误处理,但使用 Objective-C! 感谢您的帮助。
【问题讨论】:
标签: objective-c swift error-handling enums