使用CoreData属性填充UIPickerView - Swift4 IOS11

时间:2017-11-21 14:27:14

标签: ios swift uitableview core-data uipickerview

我在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]

}

0 个答案:

没有答案