Skip to content

Commit a7f8e53

Browse files
committed
More Swift template tweaks.
1 parent 8489f4d commit a7f8e53

File tree

2 files changed

+41
-40
lines changed

2 files changed

+41
-40
lines changed

templates/human.swift.motemplate

-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,5 @@ import Foundation
22

33
@objc(<$managedObjectClassName$>)
44
public class <$managedObjectClassName$>: _<$managedObjectClassName$> {
5-
65
// Custom logic goes here.
7-
86
}

templates/machine.swift.motemplate

+41-38
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,30 @@ public enum <$sanitizedManagedObjectClassName$>UserInfo: String {<$foreach UserI
2929
}
3030
<$endif$>
3131

32-
@objc public
33-
class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
3432

33+
<$if hasCustomSuperentity $>
34+
public class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
35+
<$else$>
36+
public class _<$sanitizedManagedObjectClassName$>: NSManagedObject {
37+
<$endif$>
3538
// MARK: - Class methods
3639

3740
<$if (hasCustomSuperclass || (hasCustomSuperentity && TemplateVar.overrideBaseClass))$>override <$endif$>public class func entityName () -> String {
3841
return "<$name$>"
3942
}
4043

4144
<$if (hasCustomSuperclass || (hasCustomSuperentity && TemplateVar.overrideBaseClass))$>override <$endif$>public class func entity(managedObjectContext: NSManagedObjectContext) -> NSEntityDescription? {
42-
return NSEntityDescription.entityForName(self.entityName(), inManagedObjectContext: managedObjectContext);
45+
return NSEntityDescription.entityForName(self.entityName(), inManagedObjectContext: managedObjectContext)
4346
}
4447

4548
// MARK: - Life cycle methods
4649

47-
public override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext) {
50+
public override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
4851
super.init(entity: entity, insertIntoManagedObjectContext: context)
4952
}
5053

51-
public convenience init(managedObjectContext: NSManagedObjectContext) {
52-
let entity = _<$sanitizedManagedObjectClassName$>.entity(managedObjectContext)
54+
public convenience init?(managedObjectContext: NSManagedObjectContext) {
55+
guard let entity = _<$sanitizedManagedObjectClassName$>.entity(managedObjectContext) else { return nil }
5356
self.init(entity: entity, insertIntoManagedObjectContext: managedObjectContext)
5457
}
5558

@@ -105,56 +108,56 @@ class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
105108
}
106109

107110
class func fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext: NSManagedObjectContext<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.type$><$endforeach do2$>, error outError: NSErrorPointer) -> AnyObject? {
108-
let model = managedObjectContext.persistentStoreCoordinator?.managedObjectModel
111+
guard let psc = managedObjectContext.persistentStoreCoordinator else { return nil }
112+
let model = psc.managedObjectModel
109113
let substitutionVariables = [<$if FetchRequest.hasBindings$><$foreach Binding FetchRequest.bindings do2$>
110114
"<$Binding.name$>": <$Binding.name$>,
111-
<$endforeach do2$><$endif$> ]
115+
<$endforeach do2$><$endif$>
116+
]
112117

113-
let fetchRequest = model.fetchRequestFromTemplateWithName("<$FetchRequest.name$>", substitutionVariables: substitutionVariables)
114-
assert(fetchRequest != nil, "Can't find fetch request named \"<$FetchRequest.name$>\".")
118+
guard let fetchRequest = model.fetchRequestFromTemplateWithName("<$FetchRequest.name$>", substitutionVariables: substitutionVariables) else {
119+
assert(false, "Can't find fetch request named \"<$FetchRequest.name$>\".")
120+
return nil
121+
}
115122

116-
var error: NSError? = nil
117123
var result: AnyObject? = nil
118-
let results = managedObjectContext.executeFetchRequest(fetchRequest!, error: &error)
119-
120-
if error != nil {
121-
outError.memory = error
122-
} else {
123-
switch results!.count {
124+
do {
125+
let results = try managedObjectContext.executeFetchRequest(fetchRequest)
126+
switch results.count {
124127
case 0:
125128
// Nothing found matching the fetch request. That's cool, though: we'll just return nil.
126129
break
127130
case 1:
128-
result = results![0]
131+
result = results.first
129132
default:
130-
NSLog("WARN fetch request <$FetchRequest.name$>: 0 or 1 objects expected, %lu found (substitutionVariables:%@, results:%@)",
131-
results!.count,
132-
substitutionVariables,
133-
results!);
133+
print("WARN fetch request <$FetchRequest.name$>: 0 or 1 objects expected, \(results.count) found (substitutionVariables: \(substitutionVariables), results: \(results))")
134134
}
135-
}
136135

137-
return result;
136+
} catch {
137+
print("Error executing fetch request: \(error)")
138+
}
139+
return result
138140
}
139141
<$else$>
140-
class func fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext: NSManagedObjectContext!<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.type$><$endforeach do2$>) -> [AnyObject] {
142+
class func fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext: NSManagedObjectContext<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.type$><$endforeach do2$>) -> [AnyObject]? {
141143
return self.fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.name$><$endforeach do2$>, error: nil)
142144
}
143145

144-
class func fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext: NSManagedObjectContext!<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.type$><$endforeach do2$>, error outError: NSErrorPointer) -> [AnyObject]! {
145-
let model = managedObjectContext.persistentStoreCoordinator!.managedObjectModel
146+
class func fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext: NSManagedObjectContext<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.type$><$endforeach do2$>, error outError: NSErrorPointer) -> [AnyObject]? {
147+
guard let psc = managedObjectContext.persistentStoreCoordinator else { return nil }
148+
let model = psc.managedObjectModel
146149
let substitutionVariables : [String : AnyObject] = [<$if FetchRequest.hasBindings$><$foreach Binding FetchRequest.bindings do2$>
147150
"<$Binding.name$>": <$Binding.name$>,
148151
<$endforeach do2$><$else$>:<$endif$>]
149152

150153
let fetchRequest = model.fetchRequestFromTemplateWithName("<$FetchRequest.name$>", substitutionVariables: substitutionVariables)
151154
assert(fetchRequest != nil, "Can't find fetch request named \"<$FetchRequest.name$>\".")
152155

153-
var error: NSError? = nil
154-
let results = managedObjectContext.executeFetchRequest(fetchRequest!, error: &error)
155-
156-
if error != nil {
157-
outError.memory = error
156+
var results = Array<AnyObject>()
157+
do {
158+
results = try managedObjectContext.executeFetchRequest(fetchRequest!)
159+
} catch {
160+
print("Error executing fetch request: \(error)")
158161
}
159162

160163
return results
@@ -174,25 +177,25 @@ extension _<$sanitizedManagedObjectClassName$> {
174177
func add<$Relationship.name.initialCapitalString$>(objects: <$Relationship.immutableCollectionClassName$>) {
175178
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
176179
mutable.union<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set(objects<$if !Relationship.jr_isOrdered$> as Set<NSObject><$endif$>)
177-
self.<$Relationship.name$> = mutable.copy() as NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
180+
self.<$Relationship.name$> = mutable.copy() as! NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
178181
}
179182

180183
func remove<$Relationship.name.initialCapitalString$>(objects: <$Relationship.immutableCollectionClassName$>) {
181184
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
182185
mutable.minus<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set(objects<$if !Relationship.jr_isOrdered$> as Set<NSObject><$endif$>)
183-
self.<$Relationship.name$> = mutable.copy() as NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
186+
self.<$Relationship.name$> = mutable.copy() as! NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
184187
}
185188

186-
func add<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>!) {
189+
func add<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>) {
187190
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
188191
mutable.addObject(value)
189-
self.<$Relationship.name$> = mutable.copy() as NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
192+
self.<$Relationship.name$> = mutable.copy() as! NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
190193
}
191194

192-
func remove<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>!) {
195+
func remove<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>) {
193196
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
194197
mutable.removeObject(value)
195-
self.<$Relationship.name$> = mutable.copy() as NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
198+
self.<$Relationship.name$> = mutable.copy() as! NS<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
196199
}
197200

198201
}

0 commit comments

Comments
 (0)