一个项目中的需求
在iOS项目开发过程中,我们经常会使用到NSSet
、NSArray
、NSDictionary
三个类,它们为我们设计较友好的数据结构时提供了很方便的方法
先准备本文中将要使用的对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#import @interface HHHuman : NSObject @property (nonatomic ,strong) NSString *name; + (instancetype) humanWithName:(NSString *)n; @end @implementation HHHuman + (instancetype) humanWithName:(NSString *)n { HHHuman *human = [[HHHuman alloc] init]; human.name = n; return [human autorelease]; } - (NSString *)description { return [NSString stringWithFormat:@"%@'s retainCount is %lu",self.name,[self retainCount]]; } - (void)dealloc { self.name = nil; [super dealloc]; } @end |
在程序开发过程中,经常会用到诸如此类的Model
对象.
用法呢也大致会有如下几种方式:
1.通过有序的数列进行存储,数组NSArray
;
1 2 3 4 5 6 7 8 |
HHHuman *human_1 = [HHHuman humanWithName:@"lilei"]; HHHuman *human_2 = [HHHuman humanWithName:@"hanmeimei"]; HHHuman *human_3 = [HHHuman humanWithName:@"lewis"]; HHHuman *human_4 = [HHHuman humanWithName:@"xiaohao"]; HHHuman *human_5 = [HHHuman humanWithName:@"beijing"]; id list = @[human_1,human_2,human_3,human_4,human_5]; NSLog(@"%@",list); |
输出的结果如下:
1 2 3 4 5 6 7 |
( "lilei's retainCount is 2", "hanmeimei's retainCount is 2", "lewis's retainCount is 2", "xiaohao's retainCount is 2", "beijing's retainCount is 2" ) |
2.通过统一的关键字进行存储,字典NSDictionary
;
1 2 3 4 5 6 7 8 |
HHHuman *human_1 = [HHHuman humanWithName:@"lilei"]; HHHuman *human_2 = [HHHuman humanWithName:@"hanmeimei"]; HHHuman *human_3 = [HHHuman humanWithName:@"lewis"]; HHHuman *human_4 = [HHHuman humanWithName:@"xiaohao"]; HHHuman *human_5 = [HHHuman humanWithName:@"beijing"]; id dic = @{@"excellent":human_1}; //同样在控制台输出上文字典,用来查看每个对象的保留值 NSLog(@"%@",list); |
输出的结果如下:
一个项目中的需求
在iOS项目开发过程中,我们经常会使用到NSSet
、NSArray
、NSDictionary
三个类,它们为我们设计较友好的数据结构时提供了很方便的方法
先准备本文中将要使用的对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#import @interface HHHuman : NSObject @property (nonatomic ,strong) NSString *name; + (instancetype) humanWithName:(NSString *)n; @end @implementation HHHuman + (instancetype) humanWithName:(NSString *)n { HHHuman *human = [[HHHuman alloc] init]; human.name = n; return [human autorelease]; } - (NSString *)description { return [NSString stringWithFormat:@"%@'s retainCount is %lu",self.name,[self retainCount]]; } - (void)dealloc { self.name = nil; [super dealloc]; } @end |
在程序开发过程中,经常会用到诸如此类的Model
对象.
用法呢也大致会有如下几种方式:
1.通过有序的数列进行存储,数组NSArray
;
1 2 3 4 5 6 7 8 |
HHHuman *human_1 = [HHHuman humanWithName:@"lilei"]; HHHuman *human_2 = [HHHuman humanWithName:@"hanmeimei"]; HHHuman *human_3 = [HHHuman humanWithName:@"lewis"]; HHHuman *human_4 = [HHHuman humanWithName:@"xiaohao"]; HHHuman *human_5 = [HHHuman humanWithName:@"beijing"]; id list = @[human_1,human_2,human_3,human_4,human_5]; NSLog(@"%@",list); |
输出的结果如下:
1 2 3 4 5 6 7 |
( "lilei's retainCount is 2", "hanmeimei's retainCount is 2", "lewis's retainCount is 2", "xiaohao's retainCount is 2", "beijing's retainCount is 2" ) |
2.通过统一的关键字进行存储,字典NSDictionary
;
1 2 3 4 5 6 7 8 |
HHHuman *human_1 = [HHHuman humanWithName:@"lilei"]; HHHuman *human_2 = [HHHuman humanWithName:@"hanmeimei"]; HHHuman *human_3 = [HHHuman humanWithName:@"lewis"]; HHHuman *human_4 = [HHHuman humanWithName:@"xiaohao"]; HHHuman *human_5 = [HHHuman humanWithName:@"beijing"]; id dic = @{@"excellent":human_1}; //同样在控制台输出上文字典,用来查看每个对象的保留值 NSLog(@"%@",list); |
输出的结果如下: