特定の文字列のインデックスを取得するために名前の配列をループしています。私はその後、私のUIPickerのインデックスを上記の文字列に設定したいと思います。配列をループして項目のインデックスを取得する - 即時
は、私は次のコードでは、しかし、これはアプリが原因クラッシュしています
デバッグインデックスはもちろんの原因ので、私のUIPickerの範囲内にない指標6176573120の値を取得しているlet index = self.nameArray.index(where: {$0 == assetArray[0].Owner })
scroll_owners.selectRow(index ?? 0, inComponent: 0, animated: true)
クラッシュ。
これはなぜ起こっているのでしょうか?提案の答えを使用して
は、次のエラーがスローされます。
unrecognized selector sent to instance 0x101134af0'
assetArrayで一致[0]が通過されている名前の間違いがあります。一人で、次のコード行を実行しようと、もう少し調査を行う
は同じエラーを与える:
scroll_owners.selectRow(0, inComponent: 0, animated: true)
これは私がデリゲートメソッドを欠けているということですか?
資産アレイと名配列:
var assetArray : [Asset] = []
var nameArray = [String]()
EDIT:
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
self.scroll_owners.delegate = self
self.scroll_owners.dataSource = self
私はこの作業を別の方法を取得しようとしました - 私はこれは私はそれを行うの醜い方法です知っています
var i : Int = 0
while (nameArray[i] != name)
{
print(nameArray[i])
i=i+1
}
scroll_owners.selectRow(i, inComponent: 0, animated: true)
このセクションのコードがクラッシュし、whileループが発生しましたインデックスが範囲外であるために決して入力されません - これはnameArrayで問題が発生する可能性がありますか?
assetArrayクラスとnameArrayの宣言で質問を更新できますか? –
また、どのセレクタが認識しないのですか? – Flexicoder
[UIView numberOfComponentsInPickerView:]:インスタンスに送信された認識できないセレクタ0x154037720 – benjiiiii