一.NSArray\NSMutableArray
* 有序
*快速创建(不可变):@[obj1, obj2, obj3]
*快速访问元素:数组名
1.NSArray的创建
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose",nil];
NSArray *array4 = [NSArray arrayWithObjects:@"jack",@"rose", @"4324324", nil];
快速创建一个NSArray对象;
NSArray *array4 = @[@"jack", @"rose",@"4324324"];
2.NSArray的元素个数
NSLog(@"%ld", array3.count);
3.NSArray中元素的访问
NSLog(@"%@", [array3 objectAtIndex:1]);
NSLog(@"%@",array3[0]);
4.错误写法
NSMutableArray *array = @[@"jack", @"rose"];
[array addObject:@"jim"];
二.NSSet\NSMutableSet
1.NSSet为无序的;
2.与NSSet和NSArray的对比
1> 共同点
都是集合,都能存放多个OC对象
只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
本身都不可变,都有一个可变的子类
2> 不同点
*NSArray有顺序,NSSet没有顺序
3.NSSet的创建
NSSet *s = [NSSetset];
NSSet *s2=[NSSetsetWithObjects:@"jack",@"rose",@"jack2",@"jack3",nil];
4. NSSet的取值(因NSSet是无须的只能随即拿出一个数)
NSString *str = [s2 anyObject];
三.NSDictionary\NSMutableDictionary
字典
key ----> value
索引 ----> 文字内容
里面存储的东西都是键值对
快速创建(不可变):@{key1 : value1, key2 : value2}
快速访问元素:字典名[key]
字典不允许有相同的key,但允许有相同的value(Object)
字典无序的
1.字典初始化
NSDictionary *dict = @{
@"address" : @"北京",
@"name1" : @"秦",
@"name2" : @"培",
@"name3" : @"力",
@"qq" : @"295002729"};
2.添加和移除键值对
添加键值对
[dict setObject:@"jack"forKey:@"name"];
[dict setObject:@"北京"forKey:@"address"];
[dict setObject:@"rose"forKey:@"name
移除键值对
[dictremoveObjectForKey:<#(id)#>];
六、NSNumber
// 将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'A'; // NSNumber对象
@"A"; // NSString对象
// NSNumber的创建
NSNumber *n = [NSNumber numberWithDouble:10.5];
NSArray *array = @[
@{@"name" : @"jack", @"age" : @20}
];
七、NSDate
// NSDate的创建
// 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东8区)
NSLog(@"%@", date);
NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
// 日期格式化类
// 01/01/0001
NSString *time = @"2015/06/22 ";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M月 d 日
// m 分 s秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy/MM/dd HH:mm";
NSDate *date = [formatter dateFromString:time];
NSLog(@"%@", date);
八、NSDate
// NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
// 结构体--->OC对象
CGPoint p = CGPointMake(10, 10);
// 将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p];
// 将value转为对应的结构体
// [value pointValue];