gpt4 book ai didi

ios - 在插入 CoreData 之前检查文本字段是否为空

转载 作者:行者123 更新时间:2023-11-28 10:40:07 27 4
gpt4 key购买 nike

我有 4 个 UITextFields 和一个 UIButton(保存按钮)。当我按下“保存”按钮时,它应该将我在文本字段中的内容添加到 CoreData 中,并将数据填充到 UITableView 中。但问题是当我没有在我的 TextFields 中放置任何东西并按下 Save 时,我将一个空对象添加到我的 CoreData 和我的 UITableView 中。

这是我的代码:

@IBOutlet weak var productNameTextfield: UITextField!

@IBOutlet weak var productCategoryTextField: UITextField!

@IBOutlet weak var productDescriptionTextfield: UITextField!

@IBOutlet weak var productPriceTextfield: UITextField!

// Func to insert data from TextFields into DB
func insertProduct(){

let product = Product(context: context)
let productUUID = UUID().uuidString
product.id = productUUID

if (productNameTextfield.text?.trimmingCharacters(in: .whitespaces).isEmpty)! {
showAlertWith(title: "Name required", message: "Product name is required !")
}
else if (productCategoryTextField.text?.trimmingCharacters(in: .whitespaces).isEmpty)! {
showAlertWith(title: "Category required", message: "Product Category required !")
}
else if (productDescriptionTextfield.text?.trimmingCharacters(in: .whitespaces).isEmpty)! {
showAlertWith(title: "Description required", message: "Product Description required !")
}
else if (productPriceTextfield.text?.trimmingCharacters(in: .whitespaces).isEmpty)! {
showAlertWith(title: "Price required", message: "Product Price required !")
}
else{
guard let productPrice = (productPriceTextfield.text ?? "").isEmpty ? "0.00" : productPriceTextfield.text else { return }
product.name = self.productNameTextfield.text!
product.category = self.productCategoryTextField.text!
product.prodDescription = self.productDescriptionTextfield.text!
product.price = Float(productPrice)!
appDelegate.saveContext()
resetAllFields()
showAlertWith(title: "Done", message: "Product was added with success !")
}
}

这是我的核心数据:

enter image description here

这是我在界面上的错误:

enter image description here

任何想法都会对我有很大帮助!谢谢!

最佳答案

一旦您调用 Product(context: context) 行,就会创建 CoreData 对象并将其插入到上下文中。将这些行移动到 else block 的开头:

    ...
} else {
let product = Product(context: context)
let productUUID = UUID().uuidString
product.id = productUUID

guard let productPrice = (productPriceTextfield.text ?? "").isEmpty ? "0.00" : productPriceTextfield.text else { return }
...

关于ios - 在插入 CoreData 之前检查文本字段是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com