CoreData Swift:如何保存和加载数据? [英] CoreData Swift: How to save and load data?

查看:76
本文介绍了CoreData Swift:如何保存和加载数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Swift写了一个iOS游戏,我想在最后加入一个高分标签。我认为保存功能是正确的,但负载一个是给我的问题。我已经创建了一个实体(BestScores)和属性(classicBestScoreTF):



要保存高分:


$ b b

  var bestscore25 = 1000 
var score:int

func savescore(){
var appDel:AppDelegate =(UIApplication。 sharedApplication()。delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
var score25:AnyObject! = NSEntityDescription.insertNewObjectForEntityForName(BestScores,inManagedObjectContext:context)as NSManagedObject
score25.setValue(score,forKey:classicBestScoreTF)
context.save(nil)
}

func loadscore(){
var appDel:AppDelegate =(UIApplication.sharedApplication()。delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
bestScore25 = valueForKey(classicBestScoreTF)as Int
}

func endgame(){

if score> bestScore25 {
savescore()
loadscore()
bestScoreLabel.text =最佳分数:\(bestScore25)
}

; bestscore {
loadscore()
bestScoreLabel.text =最佳分数:\(bestScore25)
}
}
pre>

它不工作(请帮助!

解决方案

data:

  var person = NSEntityDescription.insertNewObjectForEntityForName(Person,
inManagedObjectContext:self.managedObjectContext!)as Person
person.name =Mary
person.age = Float(arc4random()%100)

var错误:NSError?= nil
if!self。 managedObjectContext!.save(& error){
NSLog(Unresolved error \(error),\(error!.userInfo))
abort()
}

载入数据:

  var error:NSError?= nil 
var fReq:NSFetchRequest = NSFetchRequest(entityName:Frases)
fReq.predicate = NSPredicate(format:id contains [c]%@,String (day))
var sorter:NSSortDescriptor = NSSortDescriptor(key:id,ascending:false)
fReq.sortDescriptors = [sorter]
fReq.returnsObjectsAsFaults = false
let result:[AnyObject] = self.managedObjectContext!.executeFetchRequest(fReq,error:& error)!


I'm writing an iOS game in Swift, and I wanted to include a highscore label at the end. I think that the saving function is correct, but the load one is the one which is giving me problems. I already created an entity ("BestScores") and the attributes ("classicBestScoreTF"):

To save the highscore:

var bestscore25 = 1000
var score: int

func savescore() {    
    var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
    var context:NSManagedObjectContext = appDel.managedObjectContext!
    var score25: AnyObject! = NSEntityDescription.insertNewObjectForEntityForName("BestScores", inManagedObjectContext: context) as NSManagedObject
    score25.setValue(score, forKey: "classicBestScoreTF")
    context.save(nil)
}

func loadscore() {
    var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
    var context:NSManagedObjectContext = appDel.managedObjectContext!
    bestScore25 = valueForKey("classicBestScoreTF") as Int
}

func endgame() {

    if score > bestScore25 {
        savescore()
        loadscore()
        bestScoreLabel.text = "Best Score: \(bestScore25)"
    }

    if score < bestscore {            
        loadscore()
        bestScoreLabel.text = "Best Score: \(bestScore25)"
    }    
}

It's not working :( Please help!

解决方案

Saving data:

var person = NSEntityDescription.insertNewObjectForEntityForName("Person", 
inManagedObjectContext: self.managedObjectContext!) as Person
person.name = "Mary"
person.age = Float(arc4random() % 100)

var error : NSError? = nil
if !self.managedObjectContext!.save(&error) {
    NSLog("Unresolved error \(error), \(error!.userInfo)")
    abort()
}

Loading data:

var error: NSError? = nil
var fReq: NSFetchRequest = NSFetchRequest(entityName: "Frases")    
fReq.predicate = NSPredicate(format: "id contains[c] %@", String(day))
var sorter: NSSortDescriptor = NSSortDescriptor(key: "id" , ascending: false)
fReq.sortDescriptors = [sorter]
fReq.returnsObjectsAsFaults = false
let result : [AnyObject] = self.managedObjectContext!.executeFetchRequest(fReq, error:&error)!

这篇关于CoreData Swift:如何保存和加载数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆