Ios Swift核心数据不会永久存储数据

Ios Swift核心数据不会永久存储数据,ios,swift,core-data,xcode6,Ios,Swift,Core Data,Xcode6,我也有同样的问题,但他没有告诉我答案。因此,我不得不问你我能做什么? 我有一个叫做兔子的实体,属性是出生日期,品种日期,笼号,dam,nes,pal,rabbit,id,父系 我的核心数据存储: var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate) var context:NSManagedObjectContext = appDel.managedObjectC

我也有同样的问题,但他没有告诉我答案。因此,我不得不问你我能做什么? 我有一个叫做兔子的实体,属性是出生日期,品种日期,笼号,dam,nes,pal,rabbit,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方法返回值的输出,该值为true或false:

println("delegate: \(delegate); MOC: \(delegate.managedObjectContext)")
我得到信息:代表:;商务部:


下一步我该怎么做

我认为您的fetchrequest获取了错误的实体。尝试更改此选项:

var result: Array = delegate.managedObjectContext.executeFetchRequest(NSFetchRequest(entityName: "Friend"), error: &err)
为此:

var result: Array = delegate.managedObjectContext.executeFetchRequest(NSFetchRequest(entityName: "Rabbits"), error: &err)

未实际保存数据的两个可能原因是:

在创建持久存储协调器时使用nsimemorystoretype

在模型编辑器中将实体属性设置为瞬态


请检查以排除这些可能的原因。

您确定要在NSManagedObjectContext上调用save吗?是的,我这样做,它可以在Xcode进行最新更新之前永久存储。您认为它会影响吗?为什么要将实体保存为兔子并检索朋友实体?你确定上面提供的代码是正确的吗?我输入了错误的代码。我的代码都是拉比的,我做了,但代码还是没了。谢谢你们。我怎么能检查它?你能解释一下吗?我在本讲师的指导下添加我的核心数据:[我想您已经在AppDelegate中创建了核心数据堆栈;如果是这样,请打开AppDelegate并找到一条语句,该语句说circa psc.addPersistentStoreWithTypeNSSQLiteStoreType,配置:nil,URL:storeURL,选项:nil,错误:&错误。如果您使用的是NSInMemoryStoreType而不是NSSQLiteStoreType,这就是您的问题所在;如果您有NSSQLiteStoreType,则然后,应检查modelURL=NSBundle.mainBundle.URLForResourceDataModelName,扩展名为:momd!与.xcdatamodeld文件的名称完全相同,但不要将momd作为扩展名。要检查我的答案第2点中的数据模型中是否没有瞬态属性,应在yourdatamodel.xcdatamodeld文件上clic,在ent上clic对于每个属性,在列表中对其进行clic,并在屏幕右侧的实用程序面板中检查,第三部分显示数据模型检查器瞬态是否未选中。我检查了您告诉我的第1点和第2点,它们完全正确。