Skip to content

Instantly share code, notes, and snippets.

@jyliang
Created April 4, 2016 20:08
Show Gist options
  • Save jyliang/26c21a25506a5ae759226216585de602 to your computer and use it in GitHub Desktop.
Save jyliang/26c21a25506a5ae759226216585de602 to your computer and use it in GitHub Desktop.
+ (Class)viewModelClassForModel:(Class)modelClass {
NSString *modelClassString = NSStringFromClass(modelClass);
NSInteger suffixLength = [@"Model" length];
NSString *viewModelClassString;
NSRange range = NSMakeRange(modelClassString.length - suffixLength, suffixLength);
viewModelClassString = [modelClassString stringByReplacingCharactersInRange:range
withString:@"ViewModel"];
Class viewModelClass = NSClassFromString(viewModelClassString);
if (!viewModelClass) {
NSLog(@"Internal Name convention broken.");
}
return viewModelClass;
}
+ (Class)viewClassForViewModel:(Class)viewModelClass {
NSString *viewModelClassString = NSStringFromClass(viewModelClass);
NSInteger suffixLength = [@"ViewModel" length];
NSRange range = NSMakeRange(viewModelClassString.length - suffixLength, suffixLength);
NSString *viewClassString;
viewClassString = [viewModelClassString stringByReplacingCharactersInRange:range
withString:@"View"];
Class viewClass = NSClassFromString(viewClassString);
if (!viewClass) {
NSLog(@"Internal Name convention broken.");
}
return viewClass;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment