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
    复制代码
  • 相关阅读:
    一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路
    mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
    mycat读写分离+垂直切分+水平切分+er分片+全局表 测试
    LVS Nginx HAProxy 优缺点
    nginx map配置根据请求头不同分配流量到不同后端服务
    Javamail发送邮件
    java发送html模板的高逼格邮件
    学习openresty时,nginx的一个坑
    mysql数据导出golang实现
    mysql支持原生json使用说明
  • 原文地址:https://www.cnblogs.com/it38/p/4985180.html
Copyright © 2011-2022 走看看