2017-06-06 3 views
0

UIPickerViewインスタンスを使用して、自分のプロジェクトの特定の設定を確認しています。UIPickerViewデリゲートメソッドreturn nil

UIPickerViewのデリゲートメソッドで
pickerData = ["5 Minutes", "6 Minutes","7 Minutes","8 Minutes","9 Minutes","10 Minutes","11 Minutes","12 Minutes","13 Minutes","14 Minutes","15 Minutes","16 Minutes","17 Minutes","18 Minutes","19 Minutes","20 Minutes","21 Minutes","22 Minutes","23 Minutes","24 Minutes","25 Minutes","26 Minutes","27 Minutes","28 Minutes","29 Minutes","30 Minutes","31 Minutes","32 Minutes","33 Minutes","34 Minutes","35 Minutes","36 Minutes","37 Minutes","38 Minutes","39 Minutes","40 Minutes","41 Minutes","42 Minutes","43 Minutes","44 Minutes","45 Minutes","46 Minutes","47 Minutes","48 Minutes","49 Minutes","50 Minutes","51 Minutes","52 Minutes","53 Minutes","54 Minutes","55 Minutes","56 Minutes","57 Minutes","58 Minutes","59 Minutes","60 Minutes",] 

が、私はその後、特定のインデックスに1つの要素を取り出す整数に変換する必要があります。私のviewDidLoad()

は、私はすべてのデータを含む配列を初期化します。

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 


     let minuteIndex = Int(pickerData[row]) 
     print(minuteIndex) 
    } 

私はUIPickViewに私の選択をするために開始し、 Xcodeのコンソールプリントすべての選択はnilとして。 enter image description here

私は何が間違っているのですか?これを解決するには、事前に感謝します。

+0

文字列「5分」を整数に変換しようとしています。これを修正するには、pickerData [行]をNSStringとして宣言し、宣言されたNSStringから "Minutes"を含む先頭のスペースで文字列の一部を削除してから、NSStringをIntにキャストできます –

答えて

1

行+ 5を使用して、文字列/コンテンツを無視できます。

let minuteIndex = row + 5 

キャストまたは変換はありません。

1

純粋なIntではない文字列をIntにキャストしようとしています。 "分"部分を値から削除し、それが機能するかどうかを確認してください。

編集:キャストは変換されません。