NSString
NSString也是Objective-C类,它提供了很多方法,可以大幅减少为了处理字符串所需要的编码,此外NSString内部实现以Unicode为标准,可以处理几乎所有语言,无论是生僻字开始从右到左书写的文字。
练习:使用NSHost获取当前计算机的主机名。
NSString *string = [[NSHost currentHost] localizedName];
NSLog(@"Host name is %@", string);
2015-01-28 22:01:00.818 TimeAfterTime[5913:57483] Host name is wuyaming的MacBook Pro
与NSString类似,NSArray也是一个常用的Objective-C类。NSArray实例可以保存一组指向其他对象的指针。这里我们创建一个NSArray用于存放三个NSDate对象。
NSDate *tomorrow = [now dateByAddingTimeInterval:24.0 * 60.0 * 60.0];
NSDate *yesterday = [now dateByAddingTimeInterval:-24.0 * 60.0 * 60.0];
NSArray *dateList = [NSArray arrayWithObjects:now, tomorrow, yesterday, nil];
NSLog(@"There are %lu dates", [dateList count]);
NSLog(@"The first date is %@", [dateList objectAtIndex:0]);
NSLog(@"The third date is %@", [dateList objectAtIndex:2]);
2015-01-28 22:07:17.729 TimeAfterTime[6219:62609] There are 3 dates
2015-01-28 22:07:17.729 TimeAfterTime[6219:62609] The first date is 2015-01-28 14:07:17 +0000
2015-01-28 22:07:17.729 TimeAfterTime[6219:62609] The third date is 2015-01-27 14:07:17 +0000
可以使用类似C语言对数组操作的方式来遍历NSArray也可以使用快速枚举方式:
for (NSDate *d in dateList) {
NSLog(@"Here is a date: %@", d);
}
2015-01-28 22:09:46.119 TimeAfterTime[6349:64112] Here is a date: 2015-01-28 14:09:46 +0000
2015-01-28 22:09:46.119 TimeAfterTime[6349:64112] Here is a date: 2015-01-29 14:09:46 +0000
2015-01-28 22:09:46.120 TimeAfterTime[6349:64112] Here is a date: 2015-01-27 14:09:46 +0000
NSMutableArray
NSArray创建的是静态数组,不能增加或删除元素,而NSMutableArray创建的是动态数组。
NSMutableArray *mutableDataList = [NSMutableArray array];
[mutableDataList addObject:now];
[mutableDataList addObject:tomorrow];
[mutableDataList addObject:yesterday];
[mutableDataList removeObjectAtIndex:0];
for (NSDate *d in mutableDataList) {
NSLog(@"Here is a date: %@", d);
}
删除了now,则只剩下yesterday和tomorrow:
2015-01-28 22:13:45.788 TimeAfterTime[6557:66204] Here is a date: 2015-01-29 14:13:45 +0000
2015-01-28 22:13:45.801 TimeAfterTime[6557:66204] Here is a date: 2015-01-27 14:13:45 +0000