iOS開發(fā)實用代碼生成器,plist,json字典數(shù)組生成模型屬性代碼頭文件

工具github地址:https://github.com/linhaosunny/LSXExtension

? ? ? ?在開發(fā)中經(jīng)常要將plist文件或者json生成的字典數(shù)組生成模型對應(yīng)的屬性頭文件,在創(chuàng)建模型屬性頭文件后,如果實際工程中用到 了字典數(shù)組中的大部分屬性,如果屬性個數(shù)比較多的情況,手敲代碼去寫這些屬性是一件非常費時而且容易出錯的事情,通過下面的工具可以輕松實現(xiàn)以上代碼的頭 文件的生成提高開發(fā)效率。

// 新增功能 深層次將plist或者json轉(zhuǎn)換成模型頭文件

支持多層次的json或者plist文件生成對應(yīng)的模型頭文件支持多層次的json或者plist文件生成對應(yīng)的模型頭文件。

6.強(qiáng)大的plist,json數(shù)據(jù)轉(zhuǎn)模型功能一句代碼實現(xiàn),比MJExtension更簡單。

*對比MJExtension

如MJExtension如果模型文件中還存在模型數(shù)據(jù).m文件必須實現(xiàn)如下方法:- (NSDictionary *)objectClassInArray;

如下圖LTDealModel中包含了另外一個模型LTBusinessesModel:

.m文件實現(xiàn)如下方法


*LSXExtension 不需要實現(xiàn)如下方法.m文件不需要寫任何代碼

*網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)模型實測圖如下:


模型中包含模型數(shù)組,字典也可以轉(zhuǎn)出來,

*工具自帶測試程序效果如下,讀取的是plist文件


5.new(新功能)

增加深層次對plist文件或者json文件轉(zhuǎn)換成模型頭文件。

如在plist 文件中屬性為字典數(shù)組(NSArray <NSDictionary *>*),或者字典(NSDictionary*):


也能轉(zhuǎn)換成模型頭文件,會在對應(yīng)的路徑中生成對應(yīng)的以屬性名首字母大寫的頭文件如下圖:


首個頭文件中會引用生成的新的模型類型:


字典類型不再顯示替換成模型類型NSDictionary ===> xxxModel


數(shù)組類型會范型引用真實類型 ===>


//====================================================

如將一個status.plist生成對應(yīng)的StatusModel.h文件

導(dǎo)入LSXExtension.framework后?

1.包含如下頭文件?

#import "LSXExtension.h"?

2.使用如下方法生成對應(yīng)的模型頭文件

第一個參數(shù):工程中plist文件名稱

第二個參數(shù):需要轉(zhuǎn)換的數(shù)據(jù)部分字典中的key

第三個參數(shù):模型名稱

第四個參數(shù):生成文件路徑

?[PropertyCodeMake propertyCodeMakeWithPlist:@"status.plist" andDataKey:@"statuses" andModelName:@"StatusModel" andOutFilePath:@"/Users/lishaxin/Desktop"];

3.也可以將一個json轉(zhuǎn)換后的字典數(shù)組生成對應(yīng)的模型頭文件

+ (void)propertyCodeMakeWithDictionaryArray:(NSArray *)array andModelName:(NSString *) modelName andOutFilePath:(NSString *) outPath;

4.生成效果如下:

//

// StatusModel.h

//

//

//? Created by 李莎鑫 on 2017/03/22.

//? Copyright ? 2017年 李莎鑫. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface StatusModel : NSObject

// > NSString source

@property (nonatomic, copy) NSString *source;

// > NSNumber reposts_count

@property (nonatomic, assign) NSNumber *reposts_count;

// > NSArray pic_urls

@property (nonatomic, strong) NSArray *pic_urls;

// > NSString created_at

@property (nonatomic, copy) NSString *created_at;

// > NSNumber attitudes_count

@property (nonatomic, assign) NSNumber *attitudes_count;

// > NSString idstr

@property (nonatomic, copy) NSString *idstr;

// > NSString text

@property (nonatomic, copy) NSString *text;

// > NSNumber comments_count

@property (nonatomic, assign) NSNumber *comments_count;

// > NSDictionary user

@property (nonatomic, strong) NSDictionary *user;

// > NSDictionary retweeted_status

@property (nonatomic, strong) NSDictionary *retweeted_status;

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,200評論 30 471
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 3,705評論 2 7
  • 1.服務(wù)器返回的數(shù)據(jù): 對于服務(wù)器返回來的data,一般有兩種格式:JSON/XMLJSON:是民間的;XML:是...
    SoftKnife閱讀 554評論 0 5
  • 1.項目經(jīng)驗 2.基礎(chǔ)問題 3.指南認(rèn)識 4.解決思路 ios開發(fā)三大塊: 1.Oc基礎(chǔ) 2.CocoaTouch...
    陽光的大男孩兒閱讀 5,016評論 0 13
  • 敏捷梯,小步跑,高抬腿,單腿跳,雙腿天,單腿側(cè)身跳,雙腿側(cè)身跳,開河跳(分為深蹲和半蹲),進(jìn)出跳,側(cè)身交叉步。(要...
    雄鷹暴雨閱讀 539評論 0 1