iOS 中簡單的model的使用

開發中,我們經常會對model進行傳值,特別是當顯示列表數據時,使用字典轉model是非常方便的,MJExtension是非常方便的字典轉model的三方庫,其實直接利用KVC進行字典轉model也是非常方便的.以下是具體代碼,可以正常復制粘貼到項目上運行的,并非代碼片段

1.首先新建一個BaseModel
BaseModel.h文件中什么都不用寫
BaseModel.m寫上兩個方法

- (instancetype)initWithDictionary:(NSDictionary *)dictionary {
    self = [super init];
    if (self) {
        //使用KVC的封裝好的字典操作方法
        [self setValuesForKeysWithDictionary:dictionary];
    }
    return self;
}

//對于特殊字段的處理時限以下方法
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
}

2.新建一個NSObject,基于BaseModel
起名為MyModel
MyModel.h文件添加屬性和方法

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *userid;

+ (instancetype)modelWithDictionary:(NSDictionary *)dict;

MyModel.m文件實現方法

+ (instancetype)modelWithDictionary:(NSDictionary *)dict {
    
    MyModel *model = [[self alloc] initWithDictionary:dict];
    return model;
}

//對于特殊字段的處理時限以下方法
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    if ([key isEqualToString:@"corpName"]) {
        self.name = value;
    }
}

3.控制器中引用#import "MyModel.h", 定義屬性
可以在viewDidload中進行測試

@property (nonatomic, strong) MyModel *myModel;

- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSDictionary *dic = @{@"id":@"123",
                          @"corpid":@"hs",
                          @"corpName":@"shhs",
                          @"userid":@"nmf",
                          @"maker":@"zq",
                          @"statue":@"走勢"};
   
    self.myModel = [MyModel modelWithDictionary:dic];
    
    NSLog(@"%@",[self.myModel valueForKey:@"name"]);
}

這樣,簡單的KVC模式的字典轉模型結束了,語言組織能力有待提高,在鍛煉中

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

推薦閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,217評論 30 472
  • 下面是我最近兩年學習OC中的一些基礎知識,對于學習OC基礎知識的人可能有些幫助,拿出來分享一下,還是那句話不喜勿噴...
    小小趙紙農閱讀 2,662評論 1 7
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,255評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,552評論 25 708
  • 我真的不知道具體是曾經的哪一天,我開始變得對賺錢這兩個字眼特別關注。 因為從幼年一直到高三,我的興趣就是擠時間讀雜...
    懶小妖閱讀 253評論 0 2