2017-01-15 7 views
0

を移入する私は、次のようにNSArrayを持っている:にNSArrayはuiPickerView

rollupList = 
[ 
    {"id":"1","rollup":"Acme Servicing","o_offered":"9780"}, 
    {"id":"2","rollup":"Acme Sales","o_offered":"4512"}, 
    ... 
] 

私は成功せずuiPickerViewでそれらを表示するために、すべての「ロールアップ」を抽出しようとしています。

私はインデックス

let rowLOALogs: NSDictionary = self.rollupList[0] as! NSDictionary 
print((rowLOALogs["rollup"] as? String)!) //result: Acme Servicing 

を入力します。しかし、uiPickerViewを取り込むときに私はエラーのすべての種類を取得していたときに「ロールアップ」値を取得することができるよ:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return self.rollupList[row] 
    //or return self.rollupList[row].rollup 
    //or return return (self.kpiData[row] as AnyObject).rollup 
} 

私は」 SOの提供するさまざまなソリューションを検索してテストしていますが、動作させることはできません。

すべてのヘルプはあなたが配列からrollupを印刷しているtitleForRow方法と同じ方法からStringを返す必要が

答えて

1

をいただければ幸いです。だからそれは似ているはずです。

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    let rowLOALogs = self.rollupList[row] as! NSDictionary 
    return rowLOALogs["rollup"] as? String 
} 

注:スウィフトで代わりのNSArrayを使用してNSDictionaryあなたはスウィフトのネイティブArrayDictionaryを使用する必要があります理解する事が非常に簡単になります、あなたは、カスタムクラスオブジェクトまたは構造体の配列を使用する場合でも、それはあなたが望むことをやり遂げるのを容易にします。