From fc99ca406560ad0fb43b12b995a2ccda6ea23a28 Mon Sep 17 00:00:00 2001 From: Tom Harrington Date: Wed, 29 Apr 2015 14:35:35 -0600 Subject: [PATCH] Make mogenerator:readonly work for Swift by rendering the attribute as a read-only computed property. --- templates/machine.swift.motemplate | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/templates/machine.swift.motemplate b/templates/machine.swift.motemplate index 572defdc..4189bc4d 100644 --- a/templates/machine.swift.motemplate +++ b/templates/machine.swift.motemplate @@ -58,16 +58,26 @@ class _<$managedObjectClassName$>: <$customSuperentity$> { <$if Attribute.hasDefinedAttributeType$> <$if Attribute.hasScalarAttributeType$> <$if Attribute.isReadonly$> - @NSManaged public - let <$Attribute.name$>: NSNumber? + public var <$Attribute.name$>: NSNumber? + { + self.willAccessValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) + let <$Attribute.name$> = self.primitiveValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) as? NSNumber + self.didAccessValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) + return <$Attribute.name$> + } <$else$> @NSManaged public var <$Attribute.name$>: NSNumber? <$endif$> <$else$> <$if Attribute.isReadonly$> - @NSManaged public - let <$Attribute.name$>: <$Attribute.objectAttributeType$><$if Attribute.isOptional$>?<$endif$> + public var <$Attribute.name$>: <$Attribute.objectAttributeType$><$if Attribute.isOptional$>?<$endif$> + { + self.willAccessValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) + let <$Attribute.name$> = self.primitiveValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) as? <$Attribute.objectAttributeType$> + self.didAccessValueForKey(<$managedObjectClassName$>Attributes.<$Attribute.name$>.rawValue) + return <$Attribute.name$> + } <$else$> @NSManaged public var <$Attribute.name$>: <$Attribute.objectAttributeType$><$if Attribute.isOptional$>?<$endif$>