[iOS基礎控制項,ios基礎控制項

來源:互聯網
上載者:User

[iOS基礎控制項,ios基礎控制項
A.需求1.使用汽車品牌名稱頭字母為一個Model,汽車品牌為一個Model,頭字母Model嵌套品牌Model2.使用KVC進行Model封裝賦值3.展示頭字母標題4.展示索引(使用KVC代替遍曆取出所有索引值) 1 @property(nonatomic, strong) NSArray *cars; 封裝Model的時候需要進行相應處理CarGroup.m

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;
 2.KVC成員名使用和從dictionary取出來的鍵名一致,從而能用一個方法賦值所有成員屬性,所見代碼量
 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  

 

3.展示標題 setTitle
1 /** 設定section頭部標題 */2 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
 4.索引
1 /** 索引 */2 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {3     // 使用KVC取出數組,不用使用遍曆封裝4     return [self.carGroups valueForKey:@"title"];5 }
 C.主要代碼
 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

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.