Ios 在Swift中使用CoreData发布

Ios 在Swift中使用CoreData发布,ios,xcode,swift,Ios,Xcode,Swift,因此,我已经成功地将CoreData实现到我的Xcode项目中,所有内容似乎都正确地链接在一起。我当前在ViewController.swift中使用的代码是: func运行测试(){ 让appDel:AppDelegate=UIApplication.sharedApplication().delegate作为AppDelegate 让我们继续:NSManagedObjectContext=appDel.managedObjectContext! 让en=NSEntityDescription

因此,我已经成功地将CoreData实现到我的Xcode项目中,所有内容似乎都正确地链接在一起。我当前在ViewController.swift中使用的代码是:

func运行测试(){
让appDel:AppDelegate=UIApplication.sharedApplication().delegate作为AppDelegate
让我们继续:NSManagedObjectContext=appDel.managedObjectContext!
让en=NSEntityDescription.entityForName(“SavedData”,inManagedObjectContext:contxt)
var newItem=data(实体:en!,insertIntoManagedObjectContext:contxt)
newItem.test=“test123”
变量错误:n错误?=nil
if!contxt.save(&错误){
NSLog(“未解决的错误\(错误),\(错误!.userInfo)”)
}
NSLog(“CoreData:\(newItem)”)
}
在我的knoData.swift中:

<代码>导入基础 导入UIKit 导入CoreData @objc(数据) 类数据:NSManagedObject{ @NSVAR测试:字符串 } 当应用程序仍在运行时,当引用为“newItem.test”时,它将正确返回“test123”,但当我再次尝试运行应用程序并引用它时,它将返回nil,直到再次设置为止。我不是在存钱吗?类是否未被引用?有人请帮忙

编辑:上面的代码没有返回错误。当我运行应用程序而不引用knoData.xcdatamodeld中的类数据时,它会在NSLog中返回该数据

CoreData:(实体:SavedData;id:0x79eb6af0;数据:{
test=test123;//它只返回test123,因为它是以前设置的,但是当我再次运行应用程序并尝试在不重新设置的情况下获取值时,它返回nil
})
但当我引用knoData.xcdatamodeld中的类数据时,它会返回以下内容:

CoreData:

您需要从数据库中获取数据:

let fetchRequest = NSFetchRequest(entityName:"SavedData")
var error: NSError?
let fetchedResults = managedContext.executeFetchRequest(fetchRequest, error: &error) as [data]?
if let resultsArray = fetchedResults {
    if resultsArray.count > 0 {
        let newItem = resultsArray[0] as data
        println("Saved data is \(newItem.test)")
    } else {
        println("No results from fetch request.")
    }
}

我假设您的实体名称是“SavedData”,它属于“data”类。

为什么在保存时不检查错误?使用类似于
var error:NSError?=零如果!继续!。保存(&error){NSLog(“未解决的错误\(error),\(error!.userInfo)”)}
启动应用程序时是否提取保存的数据?您那里的代码只是创建了新对象并将它们添加到数据库中。@pbasdf我在打开应用程序时使用相同的代码引用对象,我只是注释掉setter行和save行,然后使用NSLog记录newItem.test,它返回nil,您希望我如何尝试引用它?@robotcat我在使用您的错误指针时遇到问题,它似乎有问题。当使用context.save(error)时,它应该调用错误句柄correct?@robotcat当我使用实体“SavedData”的类数据时,可以看到发生了什么,它停止返回数据。你能告诉我,我的NSManagedObject的当前配置是否正确吗?虽然我用objective-C而不是Swift处理大多数核心数据,但我觉得还可以。您是否得到错误或0个结果?当我记录(“CoreData:”CoreData)”我的CoreData(它返回“CoreData:”)时,我得到0个结果,但当它不引用类数据,而是引用NSManagedObject时,它返回诸如“CoreData:{test='test123'}”之类的结果但正如我之前所说,当我重新启动应用程序并尝试在不设置它的情况下获取“test”时,它返回nil@pbasdf请您用您的代码更新您的帖子,因为它现在的状态吗?刚刚更新。@pbasdf