Swift,CoreData 没有插入记录
Posted
技术标签:
【中文标题】Swift,CoreData 没有插入记录【英文标题】:Swift , CoreData not inserting a record 【发布时间】:2017-08-18 09:23:24 【问题描述】:我有一个函数会在标记处出错 // ERRORS HERE
db 为空,我尝试追加 Persistence 记录,然后设置其值,
tasks[0].persistencevalue = "Some Text"
!
任何帮助将不胜感激。
谢谢
堆栈显示:
2017-08-18 10:09:07.158047+0100 Ontrack[6491:1684506] [错误] 错误: CoreData:错误:无法调用指定的初始化程序 NSManagedObject 类“持久性” CoreData:错误:CoreData:错误:无法在 NSManagedObject 类“Persistence”2017-08-18 10:09:08.678 Ontrack [6491:1684506] -[Persistence setPersistencevalue:] 上调用指定的初始化程序:无法识别的选择器发送到实例 0x60800026a040 2017-08-18 10:09:08.681 Ontrack[6491:1684506] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因: '-[Persistence setPersistencevalue:]: 无法识别的选择器发送到 实例 0x60800026a040'
func Update()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let app = (UIApplication.shared.delegate as! AppDelegate )
var tasks: [ Persistence] = []
let pers = Persistence()
tasks.append(pers)
cnt = tasks.count
// ERRORS HERE
tasks[0].persistencevalue = Rate.text!
// END ERROR
【问题讨论】:
CoreData Swift: How to save and load data?的可能重复 另见this answer“调用指定初始化程序失败”错误。 【参考方案1】:感谢您的帮助,我能够使用以下代码解决问题。希望它可以帮助遇到同样问题的人。
func Update()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let app = (UIApplication.shared.delegate as! AppDelegate )
var persistencies: [ Persistence]?
var cnt = persistencies?.count
var perRec: AnyObject! = NSEntityDescription.insertNewObject(forEntityName: "Persistence", into: context) as NSManagedObject
perRec.setValue(DbKeys.PERSISTENCE_SPEECHRATE_KEY, forKey: "persistencekey")
perRec.setValue(Rate.text, forKey: "persistencevalue")
do
try context.save()
catch
print (" ERROR")
app.saveContext()
do
persistencies = try context.fetch(Persistence.fetchRequest())
catch
print("Fetching Failed")
cnt = persistencies?.count
【讨论】:
以上是关于Swift,CoreData 没有插入记录的主要内容,如果未能解决你的问题,请参考以下文章
在Core Data中,如何在swift 4中执行`if exists update else insert`? [复制]