我对(This guy)也有同样的问题,但他没有给出解决方案。因此,我不得不问你我能做什么?
我有一个实体叫兔子,属性是出生日期,品种日期,笼子编号,水坝收入,新收入日期,伙伴日期,兔子id,陛下收入
我的核心数据存储:
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方法返回值的输出值是真是假:
println("delegate: \(delegate); MOC: \(delegate.managedObjectContext)")
我收到消息:
delegate: <BreedRabbit.AppDelegate: 0x7f8ad9d03b20>; MOC: <NSManagedObjectContext: 0x7f8ad9c300b0>
下一步怎么办?
最佳答案
我认为你的fetch请求获取了错误的实体。尝试更改此:
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/