我遵循一个非常简单的快速课程,虽然一切都适用于教师,但同样的代码并没有在我身边执行,我试图理解为什么会发生这种情况。
该应用程序非常简单,包括向具有名称和开关的TableView添加任务以确定这些是否重要(在这种情况下,表情符号中添加了表情符号)
尝试访问和修改"名称"我和#34; Taskentity"的属性核心数据实体,编辑器给我错误"类型的价值" Taskentity"没有会员"名称""。
代码如下:
import UIKit
class AddTaskViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var isImp: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func btnTapped(_ sender: Any) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let task = Taskentity(context: context)
task.name = textField.text! // **!error!**
task.isImportant = isImp.isOn
(UIApplication.shared.delegate as! AppDelegate).saveContext()
navigationController!.popViewController(animated: true)
}
}
感谢您的帮助!
答案 0 :(得分:0)
您的屏幕截图完美地显示了问题。您已将属性命名为corename
,而不是name
。很自然,名字name
不是它的名字!
答案 1 :(得分:0)
您的属性存在问题。标题为'corename'的字符串应该重命名为'name'Xcode无法分辨.name的意思是因为你没有任何Devi得到的东西。
我已经附上了你的代码应该如何解决这个问题:
import UIKit
class AddTaskViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var isImp: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func btnTapped(_ sender: Any) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let task = Taskentity(context: context)
task.corename = textField.text! // **!error!**
task.isImportant = isImp.isOn
(UIApplication.shared.delegate as! AppDelegate).saveContext()
navigationController!.popViewController(animated: true)
}
}