字典转模型

//
//  heroObject.m
//  herosList
//
//  Created by xin on 15/4/9.
//  Copyright (c) 2015年 Jackey. All rights reserved.
//

#import "heroObject.h"

@implementation heroObject

-(instancetype)initWithDict:(NSDictionary *)dict{
    self = [super init];
    if (self) {
        [self setValuesForKeysWithDictionary:dict];
    }
    return self;
}

+(instancetype)heroWithDict:(NSDictionary *)dict{
    return [[self alloc]initWithDict:dict];
}

@end

  

//
//  heroObject.h
//  herosList
//
//  Created by xin on 15/4/9.
//  Copyright (c) 2015年 Jackey. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface heroObject : NSObject

//image
@property (nonatomic,copy) NSString *icon;
//description
@property (nonatomic,copy) NSString *intro;
//title
@property (nonatomic,copy) NSString *name;

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

@end

  

//
//  ViewController.m
//  herosList
//
//  Created by xin on 15/4/9.
//  Copyright (c) 2015年 Jackey. All rights reserved.
//

#import "ViewController.h"
#import "heroObject.h"

@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (weak, nonatomic) IBOutlet UITableView *tableView;

@property (nonatomic,strong) NSArray *dict;

@end

@implementation ViewController

-(NSArray *)dict{
    if(_dict == nil){
        NSString *path = [[NSBundle mainBundle]pathForResource:@"heros.plist" ofType:nil];
        NSArray *arr = [NSArray arrayWithContentsOfFile:path];
        
        NSMutableArray *arrayM = [NSMutableArray array];
        
        for (NSDictionary *dict in arr) {
            heroObject *hero = [heroObject heroWithDict:dict];
            [arrayM addObject:hero];
        }
        
        _dict = [arrayM copy];
        
    }
    return _dict;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.tableView.dataSource = self;
    //self.tableView.rowHeight = 60;
    self.tableView.delegate = self;
}

/*
 * 组
 */
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.dict.count;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
    heroObject *hero = self.dict[indexPath.row];
    cell.textLabel.text = hero.name;
    cell.detailTextLabel.text = hero.intro;
    cell.imageView.image =[UIImage imageNamed:hero.icon];
    return cell;
}

-(BOOL)prefersStatusBarHidden{
    return YES;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if(indexPath.row == 0){
        return 100;
    }else{
        return 60;
    }
}

@end

  

posted @ 2015-04-09 22:18  菠萝君  阅读(113)  评论(0编辑  收藏  举报