我在StackOverflow上尝试了很多像this这样的东西,但没有什么对我有用......我想使用核心数据属性中的值作为PickerView。
我的实体被称为“任务”,其属性为“名称”。
我知道我需要获取数据并且我已经这样做了,但我不知道如何将我的属性值作为数组获取。
目前我使用A UIPickerView:
var var1 = [""]
let var2 = ["---","1","2","3","4","5","6","7"]
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if(component==0){
return var1[row]
}
return var2[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if(component==0){
return var1.count
}
return var2.count
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 2
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if(component==0){
test1 = var1[row]
}
test2 = var2[row]
}
这是我为UITableView获取数据的方式:
// GetData
func getData() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do {
tasks = try context.fetch(Task.fetchRequest())
}
catch{
print("Fetching Failed")
}
}
所以我希望有人可以帮助我,获取正确的属性。我是Swift / Programming的新手我3天前开始使用swift ..所以一个小代码示例对我来说很有用,了解它是如何工作的......提前感谢
编辑:(如何在表格视图中填充数据)
var tasks : [Task] = []
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let task = tasks[indexPath.row]
cell.textLabel?.text = task.name
return cell
}
更新
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> Task {
return tasks[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return tasks.count
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
test1 = tasks[row]
}