码迷,mamicode.com
首页 > 其他好文 > 详细

04-字典转模型

时间:2015-05-26 22:43:43      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

- (NSArray *)appList
{
    if (_appList == nil) {
        // appList保存的是字典=>模型
//        _appList = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil]];
        NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil]];
        
        // 创建一个临时数组
        NSMutableArray *arraM = [NSMutableArray array];
        // 遍历数组,依次转换模型
        for (NSDictionary *dict in array) {

            // 类方法可以快速实例化一个对象
//            HMAppInfo *appInfo = [[HMAppInfo alloc] initWithDict:dict];
            
            HMAppInfo *appInfo = [HMAppInfo appInfoWithDict:dict];
            
//            NSString *str = [HMAppInfo appInfoWithDict:dict];
//            NSLog(@"%d", str.length);
            
            [arraM addObject:appInfo];
        }
        
        // 将临时数组为属性赋值
        _appList = arraM;
    }
    return _appList;
}
#import <Foundation/Foundation.h>

@interface HMAppInfo : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *icon;

/**
 instancetype 主要用于在类方法实例化对象时,让编译器主动推断对象的实际类型
 
 以避免使用id,会造成开发中不必要的麻烦,减少出错几率!
 
 instancetype是苹果在iOS7才开始主推的
 
 C++11 auto
 在swift语言中,绝大多数类的实例化,都不需要再指定类型
 
 instancetype只能用于返回值使用!!!不能当做参数使用
 */

/** 通常在写模型的实例化方法时,以下两个方法,都需要实现 */
/** 使用字典实例化模型 */
- (instancetype)initWithDict:(NSDictionary *)dict;
/** 类方法可以快速实例化一个对象 */
+ (instancetype)appInfoWithDict:(NSDictionary *)dict;
#import "HMAppInfo.h"

@implementation HMAppInfo

- (instancetype)initWithDict:(NSDictionary *)dict
{
    // self 是 对象
    self = [super init];
    if (self) {
        // 用字典给属性赋值,所有与plist键值有关的方法,均在此处!
        self.name = dict[@"name"];
        self.icon = dict[@"icon"];
    }
    return self;
}

+ (instancetype)appInfoWithDict:(NSDictionary *)dict
{
    // self 是 class
    return [[self alloc] initWithDict:dict];
}

/** 通常在写模型的实例化方法时,以下两个方法,都需要实现 */

/** 使用字典实例化模型 */

- (instancetype)initWithDict:(NSDictionary *)dict;

/** 类方法可以快速实例化一个对象 */

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

04-字典转模型

标签:

原文地址:http://www.cnblogs.com/xiyang1/p/4531740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!