1 @PRoperty(nonatomic, strong) NSArray *cars;
1 // 这里不能用KVC,封装car model再放到array中,不能直接存储array2 NSArray *carsArray = dictionary[@"cars"];3 NSMutableArray *mcarsArray = [NSMutableArray array];4 for (NSDictionary *dict in carsArray) {5 Car *car = [Car carWithDictionary:dict];6 [mcarsArray addObject:car];7 }8 9 self.cars = mcarsArray;
1 Car.m 2 - (instancetype) initWithDictionary:(NSDictionary *) dictionary { 3 if (self = [super init]) { 4 // 当dictionary中的键名跟Model中的成员名一致的时候,可以使用KVC 5 [self setValuesForKeysWithDictionary:dictionary]; 6 7 // self.icon = dictionary[@"icon"]; 8 // self.name = dictionary[@"name"]; 9 }10 11 return self;12 }13
1 /** 设置section头部标题 */2 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
1 /** 索引 */2 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {3 // 使用KVC取出数组,不用使用遍历封装4 return [self.carGroups valueForKey:@"title"];5 }
1 // 2 // Car.h 3 // CarGroup 4 // 5 // Created by hellovoidworld on 14/12/2. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 11 @interface Car : NSObject12 13 @property(nonatomic, copy) NSString *icon;14 @property(nonatomic, copy) NSString *name;15 16 - (instancetype) initWithDictionary:(NSDictionary *) dictionary;17 + (instancetype) carWithDictionary:(NSDictionary *) dictionary;18 + (instancetype) car;19 20 @end
1 // 2 // Car.m 3 // CarGroup 4 // 5 // Created by hellovoidworld on 14/12/2. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "Car.h"10 11 @implementation Car12 13 - (instancetype) initWithDictionary:(NSDictionary *) dictionary {14 if (self = [super init]) {15 // 当dictionary中的键名跟Model中的成员名一致的时候,可以使用KVC16 [self setValuesForKeysWithDictionary:dictionary];17 18 // self.icon = dictionary[@"icon"];19 // self.name = dictionary[@"name"];20 }21 22 return self;23 }24 25 + (instancetype) carWithDictionary:(NSDictionary *) dictionary {26 return [[self alloc] initWithDictionary:dictionary];27 }28 29 + (instancetype) car {30 return [self carWithDictionary:nil];31 }32 33 @end
1 // 2 // CarGroup.h 3 // CarGroup 4 // 5 // Created by hellovoidworld on 14/12/2. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 11 @interface CarGroup : NSObject12 13 @property(nonatomic, strong) NSArray *cars;14 @property(nonatomic, copy) NSString *title;15 16 - (instancetype) initWithDictionary:(NSDictionary *) dictionary;17 + (instancetype) carGroupWithDictionary:(NSDictionary *) dictionary;18 + (instancetype) carGroup;19 20 @end
1 // 2 // CarGroup.m 3 // CarGroup 4 // 5 // Created by hellovoidworld on 14/12/2. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "CarGroup.h"10 #import "Car.h"11 12 @implementation CarGroup13 14 - (instancetype) initWithDictionary:(NSDictionary *) dictionary {15 if (self = [super init]) {16 self.title = dictionary[@"title"];17 18 // 这里不能用KVC,封装car model再放到array中,不能直接存储array19 NSArray *carsArray = dictionary[@"cars"];20 NSMutableArray *mcarsArray = [NSMutableArray array];21 for (NSDictionary *dict in carsArray) {22 Car *car = [Car carWithDictionary:dict];23 [mcarsArray addObject:car];24 }25 26 self.cars = mcarsArray;27 }28 29 return self;30 }31 32 + (instancetype) carGroupWithDictionary:(NSDictionary *) dictionary {33 return [[self alloc] initWithDictionary:dictionary];34 }35 36 + (instancetype) carGroup {37 return [self carGroupWithDictionary:nil];38 }39 40 @end
1 // 2 // ViewController.m 3 // CarGroup 4 // 5 // Created by hellovoidworld on 14/12/1. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "ViewController.h"10 #import "CarGroup.h"11 #import "Car.h"12 13 @interface ViewController () <UITableViewDataSource>14 @property (weak, nonatomic) IBOutlet UITableView *tableView;15 16 // 所有的车品牌17 @property(nonatomic, strong) NSArray *carGroups;18 19 @end
新闻热点
疑难解答