2017-07-11 5 views
3

私は初心者の開発者で、2つの変数を返そうとしましたが、成功しませんでした。配列にして、リターンを呼び出す(これらは変数であるか、彼らは別の名前を持っている場合、私はよく分からない)すぐに2変数を返す

  1. が、私はこれらの2つの変数を入れてみましたが、エラーがあった。ここで私はすでに試みているものです:

    "int型を返すためにタイプのreturn式[の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を入れてみました変数はtcという変数にsctypes.countと呼ばれるが、ここにも私はエラー

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

'を記述する必要があります - >それだけで' Int'を返す必要がありInt'。これは古典的な 'UIPickerViewDelegate'メソッドです。正確に何をしようとしていますか?なぜなら、あなたは 'UIPickerView'のコンセプトを見逃しているようです。 – Larme

+1

はい、間違いなく混乱があります。一度に1つの値しか返すことのできないピッカービューデリゲートメソッドから2つの値を一度に返したいのはなぜですか? – rmaddy

答えて

2

のように個別にカウントを返す必要があります。

このメソッドは、コンポーネントごとに複数回呼び出されます。コンポーネントのインデックスを渡し、対応する行数を返すことを期待します。だから、

あなたstores配列は、コンポーネント0とtypesある場合は、コンポーネントの1である、あなたは

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

あなたはピッカービューを悪用されていました。 2つのホイールの値がの場合は、各ホイールのカウントを別々に返す必要があります。ピッカービューのコンポーネントは、ホイールのようなものです。だから、店舗次いで第2の車輪の表示タイプを表示する最初の車輪(コンポーネント)を持っている、あなたは、このデリゲートメソッドの機能を理解しようと、この

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