在swift中返回2个变量

时间:2017-07-11 16:26:54

标签: ios swift variables return uipickerviewdatasource

我是新手开发者,尝试返回2个变量但没有任何成功。以下是我已经尝试过的内容:

  1. 我试图将这两个变量(我不确定这些是变量还是名称不同)放入数组然后调用return,但错误是:

      

    "无法将[Int]类型的返回表达式转换为返回类型int"

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        var typeAndStoreArray = [Int]()
        typeAndStoreArray.append(stores.count)
        typeAndStoreArray.append(types.count)
        return typeAndStoreArray
    }
    
  2. 我尝试将stores.count放入名为sctypes.count的变量中,并将其放入名为tc的变量中,但此处我还有错误

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        let sn = stores.count
        let tn = types.count
    
        return (sn, tn)
    }
    

2 个答案:

答案 0 :(得分:2)

尝试了解此委托方法的功能。

每个组件多次调用该方法。它传递组件的索引并期望返回相应的行数。

因此,如果您的stores数组是组件0而types是组件1,则必须编写

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
     if component == 0 {
        return stores.count
     } else {
        return types.count
     }
}

答案 1 :(得分:1)

您滥用选择器视图。要有两个值的轮子,您需要分别返回每个轮子的计数。拾取器视图中的组件就像轮子一样。因此,要让第一个轮子(组件)显示商店,然后显示第二个轮子显示类型,您需要像这样单独返回计数

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    if component == 0 {
        return stores.count
    } else
        return types.count
    }
}