2016-09-13 4 views
1

Ich versuche, 'Standard' Daten in Core Data hinzuzufügen. Ich weiß, dass es einige Duplikate für diese Frage gibt, aber keiner hat mein Verständnis wirklich verstanden und hatte eine gute Antwort.Xcode Swift - Hinzufügen von Daten in Core Data

Ich habe folgende Daten, die ich hinzufügen möchte:

Description: Set 1 
URI: spotify:track:1puJlKuYGH58SAFgXREUpE 
Time Stamp: 0:49:00 (49 seconds) 
Duration: 30 seconds 
Crossfade: 10 seconds 
File: 1.25s Next Up.mp3 

Bisher habe ich überprüft haben, ob alle Daten im Core Data vorhanden ist, wenn es nicht dann die ‚Default‘ hinzuzufügen.

var appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate 

    let entity = NSEntityDescription.entityForName("Music", inManagedObjectContext: managedObjectContext!) 
    let request = NSFetchRequest() 
    request.entity = entity 
    request.fetchLimit = 1 
    request.predicate = NSPredicate(format: "Music") 
    let error: NSErrorPointer? = nil 

    let results: NSArray? = managedObjectContext!.executeRequest(request) 
    if let res = results{ 
     if res.count == 0 
     { 
      //TODO: Add the default musicSet's here 
      return true 
     } 
     else 
     { 
      return false 
     } 
    } 
    else 
    { 
     print("Error: \(error.debugDescription)") 
     return true 
    } 
} 

Ich habe auch die Eigenschaften:

@NSManaged var voiceover: String? 
@NSManaged var xfade: NSNumber? 
@NSManaged var duration: NSNumber? 
@NSManaged var starttime: NSNumber? 
@NSManaged var uri: String? 

Ich weiß, dass nach dem res.count == 0, ich meine Daten hinzufügen können, aber, wie dies zu tun, ich bin nicht zu 100% sicher? Ich versuchte es zu tun

.setValue("spotify:track:1puJlKuYGH58SAFgXREUpE", forkey: "uri") 

Ich bin wieder nicht sicher, ob dies der richtige Weg ist dabei? Ich bin ziemlich neu in all dem! also ich entschuldige mich! Aber jede Hilfe wäre großartig! bitte

Vielen Dank im Voraus!

Antwort

2

(Ich glaube nicht, dass Sie für Ihre ein Prädikat festlegen müssen holen zuerst als Sie Music Objekte zurückgeben möchten können Sie bereits haben.)

Erstellen Sie ein neues NSManagedObject und fügen Sie sie NSManagedObjectContext:

let defaultMusic=NSEntityDescription.insertNewObjectForEntityForName("Music", 
    inManagedObjectContext: managedObjectContext!) as! Music 

Legen Sie seine Eigenschaften mit:

defaultMusic.xfade=10.0 
defaultMusic.duration=30.0 

etc.

0

Wenn Sie einige Daten hinzufügen möchten, können Sie die NSUserDefaults auf diese Weise verwenden, einige Informationen zu setzen:

let defaults = NSUserDefaults.standardUserDefaults() 
defaults.setObject(self.user_name, forKey: "user_name") 

Auf diese Weise können Sie diejenigen Informationen in einem anderen Controller abrufen können:

let defaults = NSUserDefaults.standardUserDefaults() 
user_name = defaults.stringForKey("user_name") 

Wenn Sie sonst viele Informationen speichern möchten, können Sie die Firebase Realtime Database verwenden.