字典轉(zhuǎn)換模型時,自動生成模型的屬性字符串

  • 需求場景:
    需要新建一個模型,在模型里要挨個復制粘貼key,確定修飾類型
  • 解決思路:
    給字典建立一個分類,遍歷字典,判斷每一個值的類型,拼接上對應的修飾字符串,打印在控制臺之后復制粘貼到模型的.h文件里,節(jié)約時間
  • 代碼實現(xiàn):

@implementation NSDictionary (moreFunction)
- (void)autoCreatePropetyCode{
    
    // 模型中屬性一一對應字典的key
    // 有多少個key,則生成多少個屬性
    
    // 創(chuàng)建可變字符串用于拼接屬性
    NSMutableString *codes = [NSMutableString string];
    // 遍歷字典
    [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull value, BOOL * _Nonnull stop) {
        
        
        NSString *code = nil;
        
        if ([value isKindOfClass:[NSString class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic, cppy) NSString *%@;",key];
        } else if ([value isKindOfClass:NSClassFromString(@"__NSCFBoolean")]){
            code = [NSString stringWithFormat:@"@property (nonatomic, assign) BOOL %@;",key];
        } else if ([value isKindOfClass:[NSNumber class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic, assign) NSInteger %@;",key];
        } else if ([value isKindOfClass:[NSArray class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic, strong) NSArray *%@;",key];
        } else if ([value isKindOfClass:[NSDictionary class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic, strong) NSDictionary *%@;",key];
        }
        
        // 拼接字符串
        [codes appendFormat:@"\n%@\n",code];
        
    }];
    
    // 打印屬性
    NSLog(@"%@",codes);
    
}

@end
NSDictionary *dic = @{@"title":@"123123",
                          @"name":@"123123",
                          @"sex":@"123123"
                          };
    [dic autoCreatePropetyCode];
  • 控制臺輸出
@property (nonatomic, cppy) NSString *title;

@property (nonatomic, cppy) NSString *name;

@property (nonatomic, cppy) NSString *sex;

代碼下載地址:https://github.com/zhangjk4859/iOSFactory
完。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容