Как сохранить UIStepper в CoreData (swift 3)

Я использую UIStepper в tapleviewcell, но не знаю, как сохранить значение шагового двигателя в CoreData?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: StepperTableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! StepperTableViewCell

    //stepper is your UIStepper reference from StepperTableViewCell
    cell.stepper.tag = indexPath.row
    cell.stepper.addTarget(self, action: #selector(stepperAction(sender:)), for: .valueChanged)

    return cell
}
func stepperAction(sender: UIStepper)  {
    print("Stepper \(sender.tag) clicked. Its value \(sender.value)")
}

person Alex    schedule 15.03.2017    source источник
comment
Что ты хочешь делать? Просто сохранить sender.value? Вам действительно нужны основные данные? Может быть, UserDefaults тоже подойдет? Основные данные см. здесь raywenderlich.com/145809/getting- start-core-data-tutorial или здесь learnappdevelopment.com/ios-app-development-free/ или здесь medium.com/ios-geek-community/   -  person kuzdu    schedule 16.03.2017
comment
Я использую CoreData в своем проекте, и степпер является его частью. Я знаю, как сохранить текст из UITextfield в CoreData, но не знаю, как сохранить значение IUStepper в CoreData.   -  person Alex    schedule 16.03.2017
comment
Во всяком случае, я не понимаю проблемы. sender.value — это двойное число или число, не так ли? Core Data поддерживает двойной. Сохраните его так же, как и строку. См. здесь: stackoverflow.com/questions/37958530/using- двойные данные ядра   -  person kuzdu    schedule 16.03.2017
comment
Мой UIStepper в tableviewcell, и я не знаю, как сохранить степпер, который только что постучал, извините за мой язык.   -  person Alex    schedule 16.03.2017


Ответы (1)


1. Вы создаете переменную в StepperTableViewCell следующим образом.

var callBackStepper:((_ value:Double)->())?

2. Вы создаете IBACTION в своей StepperTableViewCell (не забудьте сделать ссылку на свой пользовательский интерфейс). Это может выглядеть так:

@IBAction func stepperTapped(sender: AnyObject) {
   callBackStepper?(sender.value)
}
  1. В вашем UIViewController, где tableView вы устанавливаете обратный вызов

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: StepperTableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! StepperTableViewCell
    
    cell.callBackStepper = { value in
       print("every time called when you use UIStepper \(value)")
     }
    return cell
    }
    

Это не проверено, но должно работать, дайте отзыв

person kuzdu    schedule 16.03.2017
comment
Я еще не тестировал это, но как сохранить шаговое значение для каждой ячейки в CoreData? - person Alex; 17.03.2017
comment
Я думал, ты знаешь, как постоянно сохранять значение, когда оно у тебя есть? Вы всегда получаете значение в обратном вызове. Чтобы сохранить его постоянно, посмотрите stackoverflow.com/questions/37958530/using-double-in-core-da‌​ta Пожалуйста, сначала протестируйте код! - person kuzdu; 17.03.2017
comment
Я проверил это, теперь у меня есть значение, но у меня есть значение в каждой ячейке, потому что в моем проекте есть табличное представление, так как я могу обновить CoreData с каждым новым значением шагового двигателя, которое есть в каждой ячейке. - person Alex; 17.03.2017
comment
Вы можете поделиться своим проектом с github или в виде zip? - person kuzdu; 18.03.2017
comment
Это сложно понять :( но у меня есть табличное представление и в каждой ячейке у меня есть степпер, теперь я могу получить значение степпера, но я не знаю, как обновить/отредактировать старое значение в CoreData. - person Alex; 18.03.2017
comment
Пожалуйста, используйте Google. В сети много статей на эту тему. Например, это: заголовок stackoverflow.com/questions/26345189/ У вас есть значение, обновите его, а затем создайте tableView.reloadData(), где новые значения используются. - person kuzdu; 18.03.2017
comment
Я сделал это, но это не работает :( Можете ли вы привести пример, который можно использовать с swift 3 для обновления/редактирования значения шагового двигателя в CoreData? Большое спасибо, сэр :) - person Alex; 18.03.2017