在视图控制器中,我有以下代码:
newPost!.save({ (post, error) in
//Error here.
if let anError = error {
print("error calling POST on /posts")
print(anError)
return
}
guard let post = post else {
print("error calling POST on /posts: result is nil")
return
}
// success!
print(post.description())
print(post.title)
})
我不太了解
Result<Whatever>
语法,Result
应该是Alamofire 2中的某个东西,Post
是我创建的一个类,但是Result<Post> -> Void
到底是什么意思,我该如何更改?更新:
func save(completionHandler: (Result<Post>) -> Void) {
let fields: [String: AnyObject]? = self.toJSON()
if fields == nil {
print("Error: error converting newPost fields to JSON")
return
}
最佳答案
您的完成处理程序定义和调用方式是不同的,如果您希望以这种方式调用它,请为您的完成处理程序尝试以下操作:
func save(completionHandler: (post:Post?, error:String?) -> Void) {
let fields: [String: AnyObject]? = self.toJSON()
if fields == nil {
completionHandler(nil, "Error converting newPost fields to JSON")
return
}
// rest of code, eventually call completionHandler with success
}
对于Swift 2:
func save(completionHandler: (post:Post?, error:String?) -> Void) {
guard let fields = self.toJSON() else {
completionHandler(nil, "Error converting newPost fields to JSON")
return
}
// rest of code, eventually call completionHandler with success
}
Closures Documentation
关于ios - '(_,_,_)-> Void'不能转换为'Result <Post>-> Void',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33050548/