我在Swift项目中使用AFNetworking。
1 - 关闭Typealias:
typealias successBlock = (AFHTTPRequestOperation! ,AnyObject!)-> Void
typealias failureBlock = (AFHTTPRequestOperation, NSError!) -> Void
2 - 定义功能:
func getUserInfo(success: (successBlock)!, failure: (failureBlock)!) {
let path = "https://api.wei.s.json"
let parameters = ["source":"key"]
self.GET(path, parameters: parameters, success: success, failure: failure)
}
3 - 错误:
无法调用' GET'使用类型'的参数列表(String,参数:[String:String],success:(successBlock)!, failure:(failureBlock)!)'
感谢您的帮助。
EIDT:
typealias failureBlock = (AFHTTPRequestOperation, NSError!) -> Void
到
typealias failureBlock = (AFHTTPRequestOperation!, NSError!) -> Void
答案 0 :(得分:5)
我认为你错过了!在failureBlock类型定义上,它期望一个显式解包的可选AFHTTPRequestOperation而不是标准的AFHTTPRequestOperation,它们实际上是不同的类型。我相信它应该是,
typealias failureBlock = (AFHTTPRequestOperation!, NSError!) -> Void
答案 1 :(得分:1)
试试:
func getUserInfo(success: (successBlock)!, failure: (failureBlock)!) {
let path = "https://api.wei.s.json"
let parameters = ["source":"key"]
self.GET(path, parameters: parameters, success: success!, failure: failure!)
}
(注意两个“爆炸”!关于成功和失败的争论。
这是基于GET函数期望闭包而不是可选引用闭包的假设。可能是它。否则,使用击键在self.GET上获取方法,并查看Swift期望的类型。它会告诉你哪里有问题。