我也有同样的问题 ( This guy ) 但他没有告诉解决方案。因此,我必须问你我该怎么办? 我有一个名为 Rabbits 的实体,属性是 birth_date,breed_date,cage_no,dam_earnum,nes_date,pal_date,rabbit_id,sire_earnum
我的核心数据存储:
var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Rabbits")
var result:NSArray = context.executeFetchRequest(request, error: nil)!
request.includesSubentities = false
request.returnsObjectsAsFaults = false
var rabbits = NSEntityDescription.insertNewObjectForEntityForName("Rabbits", inManagedObjectContext: context) as! NSManagedObject
rabbits.setValue(buckTextField.text, forKey: "sire_earnum")
rabbits.setValue(doeTextField.text, forKey: "dam_earnum")
rabbits.setValue(cageTextField.text, forKey: "cage_no")
rabbits.setValue(breedDate, forKey: "breed_date")
rabbits.setValue(palDate, forKey: "pal_date")
rabbits.setValue(nesDate, forKey: "nes_date")
rabbits.setValue(birthDate, forKey: "birth_date")
rabbits.setValue(index, forKey: "rabbit_id")
context.save(nil)
我检索数据的代码:
var result: Array = delegate.managedObjectContext.executeFetchRequest(NSFetchRequest(entityName: "Rabbits"), error: &err)
println("reslut \(result)")
因此,当我检索时,它会给出结果和数据......但它不会永久存储......如果我退出并运行该应用程序,那么以前的数据就会消失......任何人都可以告诉我我的代码有什么问题......
有一些 Joride 的建议告诉我用下面的代码显示 save 方法的返回值的输出是 true 还是 false :
println("delegate: \(delegate); MOC: \(delegate.managedObjectContext)")
我收到消息:delegate: <BreedRabbit.AppDelegate: 0x7f8ad9d03b20>; MOC: <NSManagedObjectContext: 0x7f8ad9c300b0>
接下来我该怎么做?
最佳答案
我认为您使用 fetchrequest 获取了错误的实体。尝试改变这个:
var result: Array = delegate.managedObjectContext.executeFetchRequest(NSFetchRequest(entityName: "Friend"), error: &err)
为此:
var result: Array = delegate.managedObjectContext.executeFetchRequest(NSFetchRequest(entityName: "Rabbits"), error: &err)
关于ios - Swift 核心数据不会永久存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30012086/