通用参数'Element'无法推断Swift闭包

时间:2016-09-23 18:15:44

标签: ios swift closures swift3

我正在尝试在Swift 3闭包中返回一个字符串数组。我尝试返回数组时收到错误Generic parameter 'Element' could not be inferred。这是相关的代码:

定义函数闭包:

var userArray: [String] = []
func getUsers(_ userID: String, closure:(([String]) -> Void)?) -> Void{
  userArray.append(user as String)
  closure!(userArray)
  }
}

返回数组:

_ = self.getUsers(userID!, closure: { (userArray) in //Generic parameter error...
        self.users.append(userArray)
    })

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

您有多个编码错误。以下编译(即使它可能符合或不符合您的代码的意图)。

  1> var userArray: [String] = [] 
  2. func getUsers(_ user: String, closure:(([String]) -> Void)?) -> Void { 
  3.   userArray.append(user)
  4.   closure?(userArray) 
  5. } 
userArray: [String] = 0 values

 11> var users : [String] = [] 
 12. getUsers("me", closure: { (userArray : [String]) in 
 13.         users += userArray
 14.     }) 
users: [String] = 1 value {
  [0] = "me"
}