【发布时间】:2016-05-12 17:58:23
【问题描述】:
我是 iOS Swift 2 的新手。
我定义了一个简单的函数:
// ERROR: 'Method' is ambiguous for type lookup in this context
func sendRequest(method: Method, resource: String) -> NSDictionary {
Alamofire.request(method, "https://httpbin.org/get")
}
如您所见,我定义了第一个参数的类型为Method,由Alamofire 使用。我查看了Method,它是一个Enum,定义如下:
public enum Method: String {
case OPTIONS, GET, HEAD, POST, PUT, PATCH, DELETE, TRACE, CONNECT
}
为什么我不能使用枚举类型作为函数的参数类型?
(我想这样做的原因是我不想传递String类型并检查String是否为例如'get'然后使用.GET,所以我想直接传递Method函数的枚举值。)
==== 更新 ====
Method 来自Alamofire 库,我无法更改任何内容。看起来这是一个名称冲突。但是如何摆脱这个问题呢?
【问题讨论】:
-
可能与另一个名为
Method的类型发生名称冲突。更改枚举名称或在其前面加上模块名称 (Appname.Method) -
我更新了我的帖子。
Method来自 Alamofire 库。 -
在你的函数中使用
Alamofire.Method作为类型名称 -
@dan,谢谢。它确实有效。请你回答一下。