@@ -29,27 +29,30 @@ public enum <$sanitizedManagedObjectClassName$>UserInfo: String {<$foreach UserI
29
29
}
30
30
<$endif$>
31
31
32
- @objc public
33
- class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
34
32
33
+ <$if hasCustomSuperentity $>
34
+ public class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
35
+ <$else$>
36
+ public class _<$sanitizedManagedObjectClassName$>: NSManagedObject {
37
+ <$endif$>
35
38
// MARK: - Class methods
36
39
37
40
<$if (hasCustomSuperclass || (hasCustomSuperentity && TemplateVar.overrideBaseClass))$>override <$endif$>public class func entityName () -> String {
38
41
return "<$name$>"
39
42
}
40
43
41
44
<$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)
43
46
}
44
47
45
48
// MARK: - Life cycle methods
46
49
47
- public override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext) {
50
+ public override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext? ) {
48
51
super.init(entity: entity, insertIntoManagedObjectContext: context)
49
52
}
50
53
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 }
53
56
self.init(entity: entity, insertIntoManagedObjectContext: managedObjectContext)
54
57
}
55
58
@@ -105,56 +108,56 @@ class _<$sanitizedManagedObjectClassName$>: <$customSuperentity$> {
105
108
}
106
109
107
110
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
109
113
let substitutionVariables = [<$if FetchRequest.hasBindings$><$foreach Binding FetchRequest.bindings do2$>
110
114
"<$Binding.name$>": <$Binding.name$>,
111
- <$endforeach do2$><$endif$> ]
115
+ <$endforeach do2$><$endif$>
116
+ ]
112
117
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
+ }
115
122
116
- var error: NSError? = nil
117
123
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 {
124
127
case 0:
125
128
// Nothing found matching the fetch request. That's cool, though: we'll just return nil.
126
129
break
127
130
case 1:
128
- result = results![0]
131
+ result = results.first
129
132
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))")
134
134
}
135
- }
136
135
137
- return result;
136
+ } catch {
137
+ print("Error executing fetch request: \(error)")
138
+ }
139
+ return result
138
140
}
139
141
<$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]? {
141
143
return self.fetch<$FetchRequest.name.initialCapitalString$>(managedObjectContext<$foreach Binding FetchRequest.bindings do2$>, <$Binding.name$>: <$Binding.name$><$endforeach do2$>, error: nil)
142
144
}
143
145
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
146
149
let substitutionVariables : [String : AnyObject] = [<$if FetchRequest.hasBindings$><$foreach Binding FetchRequest.bindings do2$>
147
150
"<$Binding.name$>": <$Binding.name$>,
148
151
<$endforeach do2$><$else$>:<$endif$>]
149
152
150
153
let fetchRequest = model.fetchRequestFromTemplateWithName("<$FetchRequest.name$>", substitutionVariables: substitutionVariables)
151
154
assert(fetchRequest != nil, "Can't find fetch request named \"<$FetchRequest.name$>\".")
152
155
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)")
158
161
}
159
162
160
163
return results
@@ -174,25 +177,25 @@ extension _<$sanitizedManagedObjectClassName$> {
174
177
func add<$Relationship.name.initialCapitalString$>(objects: <$Relationship.immutableCollectionClassName$>) {
175
178
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
176
179
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
178
181
}
179
182
180
183
func remove<$Relationship.name.initialCapitalString$>(objects: <$Relationship.immutableCollectionClassName$>) {
181
184
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
182
185
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
184
187
}
185
188
186
- func add<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>! ) {
189
+ func add<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>) {
187
190
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
188
191
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
190
193
}
191
194
192
- func remove<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>! ) {
195
+ func remove<$Relationship.name.initialCapitalString$>Object(value: <$Relationship.destinationEntity.sanitizedManagedObjectClassName$>) {
193
196
let mutable = self.<$Relationship.name$>.mutableCopy() as! NSMutable<$if Relationship.jr_isOrdered$>Ordered<$endif$>Set
194
197
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
196
199
}
197
200
198
201
}
0 commit comments