2014-07-14 11 views
13

Kennt jemand, oder haben Sie ein Beispiel dafür, wie man Kerntransientenwerte mit Swift behandelt? Ich weiß, @NSManaged vor den Eigenschaften zu verwenden, aber kann nicht herausfinden, wie die Logik zum Erstellen der transienten Werte mit Swift zu codieren.Kerndaten transiente Werte mit Swift

+2

Mit @NSManaged erlaubt mir nicht, einen Getter für die transiente Eigenschaft in Swift zu erstellen. Ich würde gerne wissen, wie transiente Eigenschaften auch in Swift funktionieren. – Sam

+0

mögliches Duplikat von [CoreData Swift und transienten Attribut-Gettern] (http://stackoverflow.com/questions/25960555/coredata-swift-and-transient-attribute-getters) – Ian

+0

Haben Sie dieses Problem gelöst? Hat der angegebene Link geholfen? – Orion

Antwort

8

Häkchen des transiente Feld in Ihrem Datenmodell für bestimmtes Attribut (z. sectionTitle).
erstellen Klasse für diese Entität, wird es so etwas wie

class Message: NSManagedObject { 

    @NSManaged var body: String? 
    @NSManaged var time: NSDate? 
    @NSManaged var sectionTitle: String? 
} 

bearbeiten sie aussehen und es so machen:

class Message: NSManagedObject { 

    @NSManaged var body: String? 
    @NSManaged var time: NSDate? 

    var sectionTitle: String? { 
     return time!.getTimeStrWithDayPrecision() 
     //'getTimeStrWithDayPrecision' will convert timestamp to day 
     //just for e.g. 
     //you can do anything here as computational properties 
    } 
} 

Update- Swift4
Verwenden @objc Tag für Swift 4 als:

@objc var sectionTitle: String? { 
    return time!.getTimeStrWithDayPrecision() 
} 
+0

Das funktioniert gut, wenn "Codegen" in Entity-Eigenschaft auf "manuell/keine" festgelegt ist. Wie man damit umgeht "Codegen" ist auf "Kategorie/Erweiterung" eingestellt? – Satyam

+1

Mit swift 4 musste ich "@objc dynamic var sectionTitle: String? {...}" in einem ähnlichen Fall verwenden, damit es funktioniert. – user3687284

+0

Ja, lassen Sie mich die Antwort für Swift 4 aktualisieren – D4ttatraya

1

Wir sollten willAccessValueForKey und didAccessValueForKey verwenden zu unterstützen KVO

Verwandte Themen