From d5786df709f8de8b59edfb1e41b9389bf81d9fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=97=E5=B9=B3?= Date: Wed, 23 Aug 2017 17:01:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8B=BE=E9=80=89=E5=A4=A7=E5=86=99ID=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0id->ID=E7=9A=84=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ESJsonFormat/ESJsonFormat.m | 11 +++++++++++ ESJsonFormat/ESJsonFormatManager.m | 25 +++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/ESJsonFormat/ESJsonFormat.m b/ESJsonFormat/ESJsonFormat.m index 9eb4170..822fd18 100755 --- a/ESJsonFormat/ESJsonFormat.m +++ b/ESJsonFormat/ESJsonFormat.m @@ -136,6 +136,16 @@ -(void)outputResult:(NSNotification*)noti{ NSURL *writeUrl = [NSURL URLWithString:urlStr]; //The original content NSString *originalContent = [NSString stringWithContentsOfURL:writeUrl encoding:NSUTF8StringEncoding error:nil]; + //大写ID时生成对应的映射方法 + if (ESJsonFormatSetting.defaultSetting.uppercaseKeyWordForId && + (classInfo.classDic[@"id"] || classInfo.classDic[@"ID"])) + { + NSString *methodStr = @"\n+ (NSDictionary *)replacedKeyFromPropertyName\n{\n return @{@\"ID\" : @\"id\"};\n}\n"; + NSRange lastEndRange = [originalContent rangeOfString:@"@end"]; + if (lastEndRange.location != NSNotFound) { + originalContent = [originalContent stringByReplacingCharactersInRange:NSMakeRange(lastEndRange.location, 0) withString:methodStr]; + } + } //输出RootClass的impOjbClassInArray方法 if ([ESJsonFormatSetting defaultSetting].impOjbClassInArray) { @@ -147,6 +157,7 @@ -(void)outputResult:(NSNotification*)noti{ } } } + originalContent = [originalContent stringByReplacingCharactersInRange:NSMakeRange(originalContent.length, 0) withString:classInfo.classInsertTextViewContentForM]; [originalContent writeToURL:writeUrl atomically:YES encoding:NSUTF8StringEncoding error:nil]; diff --git a/ESJsonFormat/ESJsonFormatManager.m b/ESJsonFormat/ESJsonFormatManager.m index c4085d5..26545c0 100644 --- a/ESJsonFormat/ESJsonFormatManager.m +++ b/ESJsonFormat/ESJsonFormatManager.m @@ -167,9 +167,30 @@ + (NSString *)parseClassImpContentWithClassInfo:(ESClassInfo *)classInfo{ NSMutableString *result = [NSMutableString stringWithString:@""]; if ([ESJsonFormatSetting defaultSetting].impOjbClassInArray) { - [result appendFormat:@"@implementation %@\n%@\n@end\n",classInfo.className,[self methodContentOfObjectClassInArrayWithClassInfo:classInfo]]; + if (ESJsonFormatSetting.defaultSetting.uppercaseKeyWordForId && + (classInfo.classDic[@"id"] || classInfo.classDic[@"ID"])) + { + NSString *methodStr = @"\n+ (NSDictionary *)replacedKeyFromPropertyName\n{\n return @{@\"ID\" : @\"id\"};\n}\n"; + [result appendFormat:@"@implementation %@\n%@\n\n%@\n@end\n",classInfo.className,methodStr,[self methodContentOfObjectClassInArrayWithClassInfo:classInfo]]; + } + else + { + [result appendFormat:@"@implementation %@\n%@\n@end\n",classInfo.className,[self methodContentOfObjectClassInArrayWithClassInfo:classInfo]]; + } + }else{ - [result appendFormat:@"@implementation %@\n\n@end\n",classInfo.className]; + if (ESJsonFormatSetting.defaultSetting.uppercaseKeyWordForId && + (classInfo.classDic[@"id"] || classInfo.classDic[@"ID"])) + { + NSString *methodStr = @"\n+ (NSDictionary *)replacedKeyFromPropertyName\n{\n return @{@\"ID\" : @\"id\"};\n}\n"; + [result appendFormat:@"@implementation %@\n%@\n@end\n",classInfo.className,methodStr]; + + } + else + { + [result appendFormat:@"@implementation %@\n\n@end\n",classInfo.className]; + } + } if ([ESJsonFormatSetting defaultSetting].outputToFiles) {