2015-05-25 151 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中的第一個密鑰纔有效。和其他人正在給出錯誤「發現零,同時展開一個可選值」 –