2016-08-31 3 views
8

Wenn Sie eine Transformable Eigenschaft auf Kerndaten erstellen Sie in der Regel den NSValueTransformer Code auf die Klasse des Unternehmens hinzuzufügen und seinen Namen Modellinspektor auf dem Value Transformer Feld der Daten zu füllen, aber was über das Custom Class Feld? Was ist der Zweck dieses Feldes? Kannst du ein einfaches Beispiel geben?Beispiel für Kundenspezifische Klasse auf der Transform Eigenschaft Core Data

enter image description here

Antwort

4

"Custom Class" kontrolliert, was diese Eigenschaft passiert, wenn Xcode Subklassen von/Erweiterungen auf NSManagedObject erzeugt. Wenn Sie dieses Feld leer lassen, wird Ihr Feld snapshot als NSObject deklariert. Wenn Sie einen Klassennamen eingeben, deklariert Xcode das Attribut als den von Ihnen eingegebenen Klassennamen.

In der Praxis bedeutet dies, dass, wenn Sie snapshot umwandelbar, lassen Sie dieses Feld leer, und erzeugt dann Xcode eine Unterklasse für Sie, die Eigenschaft deklariert werden als:

@NSManaged public var snapshot: NSObject? 

Auf der anderen Seite, wenn Sie füllen in diesem Bereich, beispielsweise durch UIImage dort eingeben, dann, wenn Xcode erzeugt die Unterklasse wird die Eigenschaft als deklariert werden:

@NSManaged public var snapshot: UIImage? 

Füllung in einem Klassennamen ermöglicht es den Compiler Ihre Zuweisungen zu überprüfen, so dass, wenn, Zum Beispiel ist die Eigenschaft ein UIImage, Sie versuchen nicht irrtümlich, ihm einen NSData zuzuweisen.

+0

Was? Deine Erklärung hat mein Gehirn geschmolzen. Ich konnte kein einziges Wort verstehen ... Kümmere dich darum, deine Antwort zu erweitern, Beispiele hinzuzufügen usw.? Vielen Dank. – SpaceDog

+0

Erweitert, weitere Details hinzugefügt. –

+0

Ok, ich verstehe deine erweiterte Erklärung, danke dafür, aber was ich nicht verstehe, ist folgendes: Wenn ich den Transformator definiere, muss ich ihn als 'NSValueTransformer' deklarieren. Ok, das ist eine Unterklasse von 'NSObject', aber was ich nicht verstehe, ist, wie eine Transformatorklasse von der Art UIImage sein kann ... (??!) – SpaceDog

Verwandte Themen