Skip to content

Commit 3e60748

Browse files
committed
[FIX] #42 broken #import NSManagedObject.h codegen
1 parent dfe1e4b commit 3e60748

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

mogenerator.h

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
@end
2020

2121
@interface NSEntityDescription (customBaseClass)
22+
- (BOOL)hasCustomClass;
2223
- (BOOL)hasSuperentity;
2324
- (BOOL)hasCustomSuperentity;
2425
- (NSString*)customSuperentity;

mogenerator.m

+14-4
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ - (NSArray*)entitiesWithACustomSubclassInConfiguration:(NSString*)configuration_
5454
nsenumerate (allEntities, NSEntityDescription, entity) {
5555
NSString *entityClassName = [entity managedObjectClassName];
5656

57-
if ([entityClassName isEqualToString:@"NSManagedObject"] || [entityClassName isEqualToString:@""] || [entityClassName isEqualToString:gCustomBaseClass]){
57+
if ([entity hasCustomClass]){
58+
[result addObject:entity];
59+
} else {
5860
if (verbose_) {
5961
ddprintf(@"skipping entity %@ (%@) because it doesn't use a custom subclass.\n",
6062
entity.name, entityClassName);
6163
}
62-
} else {
63-
[result addObject:entity];
6464
}
6565
}
6666

@@ -77,6 +77,15 @@ - (BOOL)hasCustomBaseCaseImport {
7777
- (NSString*)baseClassImport {
7878
return gCustomBaseClassImport;
7979
}
80+
81+
- (BOOL)hasCustomClass {
82+
NSString *entityClassName = [self managedObjectClassName];
83+
BOOL result = !([entityClassName isEqualToString:@"NSManagedObject"]
84+
|| [entityClassName isEqualToString:@""]
85+
|| [entityClassName isEqualToString:gCustomBaseClass]);
86+
return result;
87+
}
88+
8089
- (BOOL)hasSuperentity {
8190
NSEntityDescription *superentity = [self superentity];
8291
if (superentity) {
@@ -90,14 +99,15 @@ - (BOOL)hasCustomSuperentity {
9099
if (!forcedBaseClass) {
91100
NSEntityDescription *superentity = [self superentity];
92101
if (superentity) {
93-
return YES;
102+
return [superentity hasCustomClass] ? YES : NO;
94103
} else {
95104
return gCustomBaseClass ? YES : NO;
96105
}
97106
} else {
98107
return YES;
99108
}
100109
}
110+
101111
- (NSString*)customSuperentity {
102112
NSString *forcedBaseClass = [self forcedCustomBaseClass];
103113
if (!forcedBaseClass) {

test/test.xcdatamodel/elements

35.3 KB
Binary file not shown.

test/test.xcdatamodel/layout

5.02 KB
Binary file not shown.

0 commit comments

Comments
 (0)