2015-05-25 198 views
0

我第一次使用CoreData和 我已经完成了保存this教程和ewerything工作正常的值的工作。IOS - Swift - 核心数据 - 加载值

我创建了所有函数的.swift文件来保存特定对象的状态。其自身的开启或关闭功能可使冷却值“开”或“关”。

有多么的值保存:

func objectON() 
{ 
    let entityDescription = NSEntityDescription.entityForName("Groops", inManagedObjectContext: managedObjectContext!) 
    let Groop = Groops(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext) 

    Groop.object = "on" 

    var error: NSError? 
    managedObjectContext?.save(&error) 
    if let err = error { 
     println(err.localizedFailureReason) 
    } 
} 

但我有装载数据的麻烦。在我的情况下,教程版本真的很不舒服。

将是很好,如果我创建单一功能,将返回值打开或关闭在同一个.swift文件与保存功能。并可能看起来像这样

func loadValue(object: String) -> String { 
    var value = "loadedValue" 
    return value 
} 

所以我只可以使用if returnedValue == "on" { code }

有人可以帮我那朵功能?

回答

0

你正在使用的教程有你的解决方案,它位于“使用核心数据从持久存储中检索数据”。

你只需要从持久存储中获取数据。然后你可以用你的数据做任何你想要的。

let appDel = UIApplication.sharedApplication().delegate as! AppDelegate 

let moc = appDel.managedObjectContext! 

let req = NSFetchRequest(entityName:"Groops") 

var error: NSError? 

let results = moc.executeFetchRequest(req, error: &error) as! [Groops] 

if results.count > 0 { 
    println("I have my saved data and I can do something now") 
} 

如果你想过滤你的数据与fetchrequest,看看谓词的工作。

+0

谢谢,我已经完成了功能,并出现另一个问题。当我加载密钥的值时,只有它是Groops.swift和.xcdatamodeld中的第一个密钥才有效。和其他人正在给出错误“发现零,同时展开一个可选值” –