Skip to content
This repository was archived by the owner on Jun 19, 2019. It is now read-only.

Commit c319908

Browse files
committed
Merge pull request #104 from Aggouri/master
Fixed Swift class resolution when app name has spaces
2 parents 3950a75 + 78b1f6f commit c319908

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Classy/Parser/CASParser.m

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ - (NSArray *)nextStyleNodes {
643643
styleSelector.styleClass = [tokenValue substringFromIndex:1];
644644
} else {
645645
styleSelector.objectClass = NSClassFromString(tokenValue);
646-
if (!styleSelector.objectClass) {
646+
if (!styleSelector.objectClass) {
647647
// Maybe it's a custom Swift class
648648
styleSelector.objectClass = [self swiftClassFromString:tokenValue];
649649
}
@@ -779,9 +779,10 @@ - (CASStyleProperty *)nextStylePropertyIsParent:(BOOL *)isParent {
779779
}
780780

781781
- (Class)swiftClassFromString:(NSString *)className {
782-
NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
783-
NSString *classStringName = [NSString stringWithFormat:@"_TtC%lu%@%lu%@", (unsigned long)appName.length, appName, (unsigned long)className.length, className];
784-
return NSClassFromString(classStringName);
782+
NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
783+
NSString *sanitizedAppName = [appName stringByReplacingOccurrencesOfString:@" " withString:@"_"];
784+
NSString *classStringName = [NSString stringWithFormat:@"_TtC%lu%@%lu%@", (unsigned long)sanitizedAppName.length, sanitizedAppName, (unsigned long)className.length, className];
785+
return NSClassFromString(classStringName);
785786
}
786787

787788

0 commit comments

Comments
 (0)