实际编程中,可能会遇到一些代码有一定的规律,且代码重复率较大时可以借用自定义的代码进行生成工作中所需要的代码,这样可以大大节省编程的时间,进而提高效率~
main函数
// 1.用字典类型保存Person类的信息
NSDictionary *personClass = [NSDictionary dictionaryWithObjectsAndKeys:
// @"Person", @"className",
@"NString *", @"name",
@"NSString", @"sex",
@"NSInteger", @"age", nil];
// 2.调用方法生成代码
AutoCode *autoCode = [[AutoCode alloc] init];
NSLog(@"%@", [autoCode creatInitStringWith:personClass]);
.m
// 根据字典信息,生成初始化方法源代码字符串
- (NSString *) creatInitStringWith:(NSDictionary *)classInfoDic
{
NSMutableString *codeing = [NSMutableString stringWithFormat:@"- (id)initWith"];
NSArray *keys = [classInfoDic allKeys];
NSArray *values = [classInfoDic allValues];
for (int i = 0; i < [keys count]; i++) {
NSString *key = keys[i];
[codeing appendString:[key capitalizedString]];
[codeing appendFormat:@":(%@)%@", values[i], key];
if (i == 0) {
[codeing appendString:[key capitalizedString]];
} else {
[codeing appendString:key];
}
[codeing appendFormat:@":(%@)%@", values[i], key];
if (i == [keys count] - 1) {
[codeing appendString:@"\n{"];
} else {
[codeing appendString:@" "];
}
}
[codeing appendString:@" self = [super init];\n"];
[codeing appendString:@" if (self) {\n"];
for (int i = 0; i < [keys count]; i++) {
[codeing appendFormat:@" self.%@ = %@;\n", keys[i], keys[i]];
}
[codeing appendString:@" }\n return self;\n"];
return codeing;
}
.h
// 根据字典信息,生成初始化方法源代码字符串
- (NSString *) creatInitStringWith:(NSDictionary *)classInfoDic;