将Picker设置为默认为CoreData值?

时间:2017-02-26 13:40:07

标签: ios swift uipickerview

我有2个选择器,用户在其上设置所需的int,然后将对象保存到核心数据。

稍后当他们想要编辑对象时,他们会将数据重新加载到编辑器中。

我遇到的问题是,拾取器无法从核心数据中取回int并将其自身默认为此值,它们始终默认为' 0' 0

是否有一种方法可以使选择器默认为存储在他们正在编辑的对象中的所需int?

我有以下委托方法:

    repsPicker.dataSource = self
    repsPicker.delegate = self
    setsPicker.dataSource = self
    setsPicker.delegate = self

然后我尝试从对象中获取属性并将它们应用于拾取器,但我使用NUMBER?代替id假设我需要放置代码来访问拣货员的默认值,这里就是我卡住的地方......

 setsPicker.selectedRow(inComponent: Int(userExercise.sets))
 repsPicker.selectedRow(inComponent: Int(userExercise.reps))

如果有帮助的话,userExercise.sets或.reps的数据类型是Int64吗?

非常感谢您的时间和帮助

编辑 -

这是组件覆盖

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    if pickerView == repsPicker {
        return 1
    } else if pickerView == setsPicker {
        return 1
    }
    return 1
}

1 个答案:

答案 0 :(得分:1)

您应该使用selectRow func而不是selectedRow

func selectRow(_ row: Int,
   inComponent component: Int,
      animated animated: Bool)

所以,它应该是

setsPicker.selectRow(Int(userExercise.sets), inComponent :0,animated:false)
repsPicker.selectRow(Int(userExercise.reps), inComponent :0,animated:false)