zoukankan      html  css  js  c++  java
  • 字典转模型对象

    这里主要是说NSDictionary转模型对象的核心代码,和需要注意点。

    /***
     *  从处理plist中的数据 并返回模型对象的数组
     *
     *  @return  NSArray *apps;
     */
    -(NSArray *) apps{
        if (_apps==nil) {
            // 过去plist的全路径
            NSString *path=[[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil];
            //加载数组
            NSArray *dicArray=[NSArray arrayWithContentsOfFile:path];
            //将dicArray里面的所有字典转成模型对象,放到新的数组中。
            NSMutableArray *appArray=[NSMutableArray  array];
            for (NSDictionary *dict in dicArray) {
                //创建模型对象
           //initWithDict 自定义对象方法
                MyApp *app=[[MyApp alloc] initWithDict:dict];
                 
                /***[NSString stringWithFormat:<#(NSString *), ...#>];
                [[NSString alloc] initWithFormat:<#(NSString *), ...#>];
                
                [NSArray arrayWithContentsOfFile:<#(NSString *)#>]
                [[NSArray alloc] initWithContentsOfFile:<#(NSString *)#>;**/
                 /**通过这里 我们需要提取一个appWith
                MyApp *app=[MyApp appWithDict:dict];
                //添加到对象到数组中
                [appArray addObject:app];
            }
            //赋值
            _apps=dicArray;
            
        }
        return _apps;
    }





    #import <Foundation/Foundation.h> /** * copy :NSString strong :一般对象 weak:UI控件 assign :基本数据类型 */ @interface MyApp : NSObject /** * 图标 */ @property (nonatomic,copy) NSString *icon; /** * 名称 */ @property(nonatomic,copy) NSString *name; /** * 通过字典来初始化模型对象 * * @param dic 字典对象 * * @return 已经初始化完毕的模型对象 */ /* instancetype的作用,就是使那些非关联返回类型的方法返回所在类的类型! 好处能够确定对象的类型,能够帮助编译器更好的为我们定位代码书写问题
    instanchetype和id的对比
    1、相同点
    都可以作为方法的返回类型
    
    2、不同点
    ①instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;
    
    ②instancetype只能作为返回值,不能像id那样作为参数,比如下面的写法:
    */
    -(instancetype)initWithDict:(NSDictionary *)dict;
    
    +(instancetype) appWithDict:(NSDictionary *)dict;
    @end
    复制代码
  • 相关阅读:
    一次关于聚合根的激烈讨论
    基于 abp vNext 和 .NET Core 开发博客项目
    PYTHON 学习笔记1 PYTHON 入门 搭建环境与基本类型
    DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下
    DOCKER 学习笔记8 Docker Swarm 集群搭建
    DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结
    DOCKER 学习笔记6 WINDOWS版尝鲜
    DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排
    DOCKER 学习笔记4 认识DockerCompose 多容器编排
    DOCKER 学习笔记3 使用Docker部署SpringBoot
  • 原文地址:https://www.cnblogs.com/it38/p/4985180.html
Copyright © 2011-2022 走看看