我有一个路由器类,在实例化时将填充一些路由:
private func populateRoutes() {
routes.addRoute(url: URL(string: Resource.home.rawValue)!, actions: [RequestMethod.head: headAction, RequestMethod.get: getAction])
routes.addRoute(url: URL(string: Resource.test.rawValue)!, actions: [RequestMethod.get: getAction])
}
我还有一个枚举类来存储路线的字符串表示形式:
public enum Resource: String {
case home = "/index"
case test = "/simple_get"
}
我不明白为什么Xcode会因为不提供默认值(??)或使用强制展开(!)而给我一个错误
答案 0 :(得分:1)
URL的字符串构造函数返回一个可选URL,因此编译器要求您为addRoute的调用提供一个非可选参数。
URL初始化文档?(string:String)here说,如果由于提供的字符串而无法形成URL,则返回nil。