2016-09-23 11 views
1

Swift 3クロージャで文字列の配列を返そうとしています。配列を返そうとするとエラーGeneric parameter 'Element' could not be inferredが出ます。ここでは、関連するコードは次のとおりです。汎用パラメータ 'Element'を推論できませんでした。Swift closure

は、関数クロージャを定義します。

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) 
    }) 

私が間違っているのは何を?

ありがとうございます!

+0

'userArray'、' user'、および 'users'とは何ですか? – Aaron

+0

'var userArray:[String] = []'、そうではありませんか? –

+0

申し訳ありません。私はコードを省き、人々を圧倒しませんでした。 userArrayは文字列の配列です。 userはString、self.usersはStringの配列です。 – winston

答えて

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" 
} 
+0

'userArray:[String]'はそれを修正したものです!データ型を追加することはそのトリックをしたようだった。ありがとう! – winston

関連する問題