2016-11-12 58 views
0

我想将两个值附加到我的变量countryAndCode。 我得到的错误:Extra argument 'code' in call这对我没有任何意义,因为countryAndCode取两个值:国家和代码?调用swift中的额外参数

我做错了什么?

这里是我的代码:

func startObersvingDB() { 
     FIRDatabase.database().reference().child("UserInformation").observeEventType(.ChildAdded, withBlock: { snapshot in 

      if let title = snapshot.value!["usersUID"] as? String { 
       self.tableData.append(title) 


       if let name = snapshot.value!["userName"] as! String? { 

        self.tableDataNames.append(name) 



        for i in 0...self.tableData.count { 
         var countryAndCode: [(country:String, code: String)] 
         countryAndCode.append(self.tableData[i], code: self.tableDataNames[i]) 
        } 



        self.tableView.reloadData() 

       } else { 
        print("Noget virker ikke i startObservingDB") 
       } 



      } 
     }) 


    } 

如果是相关的;我正在尝试创建一个显示用户名的搜索栏,同时也显示他们的图片(这就是为什么我需要tableData中的id)。

回答

1

你只需要将你传入的参数封装在括号中。

更改此: countryAndCode.append(self.tableData[i], code: self.tableDataNames[i])

到: countryAndCode.append((self.tableData[i], code: self.tableDataNames[i]))

你需要这样做的原因是因为你与[(country:String, code: String)]用括号封装阵列内部的争论宣告你的阵列,所以你需要将数据附加到它时执行相同操作。

+0

你知道我为什么会得到这个错误:'index out of range' at this code ?:'countryAndCode.append((self.tableData [i],code:self.tableDataNames [i]))' –

+0

I认为它来自'tableData [i]'索引而不是countryAndCode数组 – RyanM