2016-11-02 1 views
0

Ich habe ein Attribut in meiner Entität, die mehrere Int speichern sollte. Dies ist, wie der Recieved JSON von der API wieSpeichern Sie ein Array-Attribut in der Datenbank

{ 
    "type": “KsCell”, 
    “id”: 23, 
    “allowedSize”: [1,2], 
}, 

schaut Wie kann ich erklären/store dies im xcdatamodeld?

dies eine Liste von Attribut ist ich wählen kann, gibt es keine Array

enter image description here

+0

Dies sollte ein Array-Typ sein –

+0

Welches ist der Array-Typ? Ich versuchte Transformable, aber es funktioniert nicht –

+0

Sie können Array-Wert in Zeichenfolge konvertieren, während Sie in Coredata einfügen und beim Abrufen nur erneut in Array konvertieren thats d einzige Option, die Sie in dieser Situation tun können –

Antwort

0

Es gibt keine "native" Array oder Dictionary-Typ in Core Data. Sie können ein NSArray oder ein NSDictionary als transformierbares Attribut speichern. Dies wird das NSCoding verwenden, um das Array oder Wörterbuch zu einem NSData-Attribut zu serialisieren (und es nach dem Zugriff entsprechend zu deserialisieren). - src

Also, mögliche Lösung möglicherweise Verwendung von transformierbaren Typ.

Als expample, können Sie es in Ihrem NSManagedObject als erklären:

@NSManaged var allowedSizes: [NSNumber] 

und ordnen Sie analysiert Ints Array von json

myObject!.allowedSizes = allowedSizeArray //[1,2] 

Eine andere Lösung zu verwenden NSKeyedArchiver ist Ihr Array zu konvertieren in NSDaten.

let allowedSizes = NSKeyedArchiver.archivedDataWithRootObject(allowedSizeArray) // NSData 
Verwandte Themen