如何将 UIStepper 保存到 CoreData (swift 3)

Posted

技术标签:

【中文标题】如何将 UIStepper 保存到 CoreData (swift 3)【英文标题】:How to save UIStepper to CoreData (swift 3) 【发布时间】:2017-03-15 21:42:49 【问题描述】:

我在 Tapleviewcell 中使用 UIStepper,但我不知道如何在我的 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)")

【问题讨论】:

你想做什么?只需保存 sender.value?你真的需要核心数据吗?也许 UserDefaults 也会很棒?对于核心数据,请查看此处raywenderlich.com/145809/getting-started-core-data-tutorial 或此处learnappdevelopment.com/ios-app-development-free/… 或此处medium.com/ios-geek-community/… 我在我的项目中使用 CoreData,步进器是其中的一部分。我知道如何将文本从 UITextfield 保存到 CoreData,但我不知道如何在 CoreData 中保存 IUStepper 值 无论如何我不明白这个问题。 sender.value 是双精度数或数字,不是吗? Core Data 支持双精度。以与字符串相同的方式保存它。见这里:***.com/questions/37958530/using-double-in-core-data 我的 UIStepper 在 tableviewcell 中,我不知道如何保存刚刚点击的步进器,对不起我的语言。 【参考方案1】:

1.您像这样在 StepperTableViewCell 中创建一个变量

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

2.您在 StepperTableViewCell 中创建一个 IBACTION(不要忘记引用您的 UI) 可能看起来像这样:

@IBAction func stepperTapped(sender: AnyObject) 
   callBackStepper?(sender.value)

    在你的 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
    
    

它未经测试,但它应该可以工作,请提供反馈

【讨论】:

我还没有测试,但是如何保存 CoreData 中每个单元格的步进值? 我以为你知道当你拥有价值时如何持久保存价值?您总是在回调中获得值。要永久保存它,请查看 ***.com/questions/37958530/using-double-in-core-da‌​ta 请先测试代码! 我测试了它,现在我有了价值,但我在每个单元格中都有价值,因为我的项目中有 tableview,所以如何使用每个单元格中的每个新步进值更新 CoreData。 你能用 github 或 zip 分享你的项目吗? 理解起来很复杂:(但是我有一个表格视图,并且在每个单元格中都有步进器,现在我可以获得步进器值但我不知道如何更新/编辑旧值核心数据。

以上是关于如何将 UIStepper 保存到 CoreData (swift 3)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 uistepper 乘以 segue 数据传输中的值 [关闭]

UIStepper tintColor 不起作用?

将 Int 保存到核心数据中的正确方法?

swift - 如何从另一个类设置 UIStepper 值?

当 UIStepper 在 Swift 4 中以编程方式点击时如何更改 UILabel 的文本,如果它们都在 UITableViewCell 中?

禁用UIStepper的一半