создайте Struct для деталей, которые вы хотите для песни
struct songDetails {
var songName : String
var songBPM : String
}
Теперь вы можете создать массив, используя этот тип структуры,
var songDetailsArray : [songDetails] = []
И вы можете добавить новую песню в массив с помощьюпринимая входные данные из UITextFields
songDetailsArray.append(songDetails(songName: songNameTextField.text!, songBPM: bpmTextField.text!))
и легко добавьте его в UIPIckerView, используя тот же массив
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return songDetailsArray[row].songName
}
Вы можете выбрать песню из UIPickerView и получить доступ к ее названию с помощью
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let songName = songDetailsArray[row].songName
let correspondingBpm = songDetailsArray[row].songBPM
print(correspondingBpm) //this is the corresponding bmp to the seleced song name
UserDefaults.standard.set(songName, forKey: "sName")
UserDefaults.standard.set(correspondingBpm, forKey: "sBPM")
}
Здесь вы создаете только два значения UserDefaults для вашей песни и соответствующий BPM.
И вы можете получить доступ к этому значению UserDefaults в любом месте проекта с помощью
let songName = UserDefaults.standard.integer(forKey: "sName")
let songBPM = UserDefaults.standard.integer(forKey: "sBPM")
Это может помочь вам, теперь вы можете найти BPM, соответствующий названию песни