----------------------
IOS开发、
Android培训、期待与您交流! ----------------------
一、NSNumber
前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了。 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象。
一、NSNumber
前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了。 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象。
- // 将整形包装成OC对象
- NSNumber *num1 = [NSNumber numberWithInt:120];
- // 将浮点形包装成OC对象
- NSNumber *num2 = [NSNumber numberWithDouble:0.5];
- // 把包装后的数据存放到OC数组中
- NSArray *array = @[@"年龄",num1];
- // 遍历数组
- for (id obj in array)
- {
- NSLog(@"%@", obj);
- }
通过NSNumber的方法能够把所有基本数据类型包装成OC对象,再存放到OC数组中。要把NSNumber包装后的对象还原成基本数据类型,操作如下:
- // 将NSNumber类型的对象还原成基本数据类型
- int age = [num1 intValue];
- double a = [num2 doubleValue];
- 还可以 使用编译器特性快速包装一个基本数据:
- // 快速包装
- @120;
- @0.5;
- @NO;
- //
- // main.m
- // NSNumber、NSValue和NSdate
- //
- // Created by 葬花 桥 on 14-5-18.
- // Copyright (c) 2014年 itcast. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- int main()
- {
- // 将整形包装成OC对象
- NSNumber *num1 = [NSNumber numberWithInt:120];
- // 将浮点形包装成OC对象
- NSNumber *num2 = [NSNumber numberWithDouble:0.5];
- // 把包装后的数据存放到OC数组中
- NSArray *array = @[@"年龄",num1];
- // 遍历数组
- for (id obj in array)
- {
- NSLog(@"%@", obj);
- }
- // 将NSNumber类型的对象还原成基本数据类型
- int age = [num1 intValue];
- double a = [num2 doubleValue];
- // 快速包装
- @120;
- @0.5;
- @NO;
- // 使用快速包装,再存放到数组中
- NSArray *array2 = @[@"hello",@100, @YES, @0.3, @'H'];
- return 0;
- }
二、NSValue
NSValue和NSNumber相似,具体来说前者是后者的父类。NSValue可以包装复杂的基本数据类型,如结构体,枚举。
NSValue和NSNumber相似,具体来说前者是后者的父类。NSValue可以包装复杂的基本数据类型,如结构体,枚举。
- int main()
- {
- // OC结构体
- CGPoint point = CGPointMake(11, 12);
- // 将结构体包装成OC对象
- NSValue *val = [NSValue valueWithPoint:point];
- // 将包装后的OC对象存放到OC数组
- NSArray *array = @[val];
- NSLog(@"%@", array);
- return 0;
- }
三、NSDate
这个类是与时间相关的,这里主要复习一下日期的格式化。
这个类是与时间相关的,这里主要复习一下日期的格式化。
- // 创建日期对象
- NSDate *date = [NSDate date];
- // 日期格式化类
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- // y 年 M 月 d 日
- // m 分 s 秒 H (24)时 h(12)时
- formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 固定写法,不能随便写
- // 将日期格式化成字符串对象
- NSString *str = [formatter stringFromDate:date];
- NSLog(@"%@", str);
- // 格式化的参数都有固定含意,不能随意写。上面是将日期格式化输出,下面再来将字符串中的日期
- // 指定日期为
- NSString *time = @"2022/05/01 13:30";
- // 创建日期格式化对象
- NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
- // 格式化日期
- formatter2.dateFormat = @"yyyy/MM/dd HH:mm";
- NSDate *date2 = [formatter2 dateFromString:time