黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate
Objective-c 之Foundation之NSNumber ,NSValue, NSDate
1、NSNumber具体用法如下:
在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber。这是因为很多类(如NSArray)都要求使用对象,而int不是对象。
NSNumber就是数字对象,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象。
此外,还可以使用实例方法为先前分配的NSNumber对象设定指定的值,这些都是以initWith开头,比如initWithLong。
如:
创建和初始化类方法 | 初始化实例方法 | 取值实例方法 |
---|---|---|
numberWithChar: | initWithChar: | charValue |
numberWithShort: | initWithShort: | shortValue |
... | ... | ... |
1 void test()
2 {
3 NSNumber *num = [NSNumber numberWithInt:10];
4
5 NSDictionary *dict = @{
6 @"name" : @"jack",
7
8
9 @"age" : num
10
11 };
12
13 NSNumber *num2 = dict[@"age"];
14
15
16 int a = [num2 intValue];
17
18 NSLog(@"%d" , a);
19 }
1 #import <Foundation/Foundation.h>
2
3 int main()
4 {
5 // @20 将 20包装成一个NSNumber对像
6
7
8 NSArray *array = @[
9
10 @{@"name" : @"jack", @"age" : @20},
11
12 @{@"name" : @"rose", @"age" : @25},
13
14 @{@"name" : @"jim", @"age" : @27}
15 ];
16
17
18 // 将各种基本数据类型包装成NSNumber对象
19 @10.5;
20 @YES;
21 @'A'; // NSNumber对象
22
23 @"A"; // NSString对象
24
25
26
27 // 将age变量包装成NSNumber对象
28 int age = 100;
29 @(age);
30 //[NSNumber numberWithInt:age];
31
32
33 NSNumber *n = [NSNumber numberWithDouble:10.5];
34
35
36 int d = [n doubleValue];
37
38
39
40 int a = 20;
41
42 // @"20"
43 NSString *str = [NSString stringWithFormat:@"%d", a];
44 NSLog(@"%d", [str intValue]);
45
46 return 0;
47 }
2、NSValue具体用法:
NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
1 #import <Foundation/Foundation.h>
2
3
4 int main()
5 {
6
7 // 结构体--->OC对象
8
9 CGPoint p = CGPointMake(10, 10);
10 // 将结构体转为Value对象
11 NSValue *value = [NSValue valueWithPoint:p];
12
13 // 将value转为对应的结构体
14 // [value pointValue];
15
16 NSArray *array = @[value ];
17
18
19 20
21 return 0;
22 }
3、NSDate具体用法如下代码:
1 void use()
2 {
3 // 创建一个时间对象
4 NSDate *date = [NSDate date];
5 // 打印出的时候是0时区的时间(北京-东8区)
6 NSLog(@"%@", date);
7
8 NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
9
10
11 // 从1970开始走过的秒数
12 NSTimeInterval seconds = [date2 timeIntervalSince1970];
13
14 // [date2 timeIntervalSinceNow];
15 }
日期格式化:
1 void date2string()
2 {
3 NSDate *date = [NSDate date];
4
5
6 // 日期格式化类
7 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
8
9 // y 年 M 月 d 日
10 // m 分 s 秒 H (24)时 h(12)时
11 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //HH /hh 24小时致/12小时制
12
13 NSString *str = [formatter stringFromDate:date];
14
15 NSLog(@"%@", str);
16 }
1 void string2date()
2 {
3 // 09/10/2011
4 NSString *time = @"2011/09/10 18:56";
5
6 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
7 formatter.dateFormat = @"yyyy/MM/dd HH:mm";
8
9 NSDate *date = [formatter dateFromString:time];
10 NSLog(@"%@", date);
11 return 0;
12 }
黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate的更多相关文章
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day17-资料源码\day17_code\day17_1\ 大数据 目 ...
- 2016年8月17日 内省(1)18_黑马程序员_使用beanUtils操纵javabean
8.内省(1):18_黑马程序员_使用beanUtils操纵javabean 1.导入两个包: 2.调用静态方法. 9.泛型 map.entrySet() :取出map集合的键值对组成一个set集合. ...
- 黑马程序员_高新技术之javaBean,注解,类加载器
----------- android培训.java培训.java学习型技术博客.期待与您交流! ---------- 第一部分 javaBean 一,由内省引出javaBean 1,内省: 内省对应 ...
- 黑马程序员_ JAVA中的多线程
------- android培训.java培训.期待与您交流! ---------- 尽管线程对象的常用方法可以通过API文档来了解,但是有很多方法仅仅从API说明是无法详细了解的. 本来打算用一节 ...
- JavaWeb开发之四:servlet技术 黑马程序员_轻松掌握JavaWeb开发之四Servlet开发 方立勋老师视频教程相当的经典
总结: 记住:servlet对象在应用程序运行的过程中只创建一次,浏览器每次访问的时候,创建reponse对象 request对象,然后调用servlet的service方法,reponse对象和re ...
- 黑马程序员_ Objective-c 之Foundation笔记(二)
NSArray NSArray的创建 NSArray *array = [NSArray arrayWithObject:@“jack”] 创建单个元素 NSArray *array3 = [NS ...
- 黑马程序员_ Objective-c 之Foundation笔记(一)
结构体 NSRange: 用来表示范围 创建 NSRange r1 = {2, 4} NSRange r2 = {.location = 2, .length = 4} NSRange r3 = N ...
- 黑马程序员_ Objective-c 面向对象笔记详解
1)类,对象,方法 类 类名: 1) 类名的第一个字母必须是大写 2) 不能有下划线 3) 多个英文单词,用驼峰标识 类的声明和实现 类的声明 @interface 类名 : NSObject { @ ...
- 黑马程序员_ Objective-c 概述及面向对象与三大特性
-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ (一).语法概述 1. oc介绍:(.m文件) 1> c语言的基础上,增加 ...
随机推荐
- C#编程语言与面向对象——继承
现实生活中的事物都归属于一定的类别,比如,狮子是一种(IS_A)动物,为了在计算机中模拟这种关系,面向对象的语言引入了继承(inherit)特性. 构成继承关系的两个类中,Animal称为父类(par ...
- folly::AtomicHashmap源码分析(二)
本文为原创,转载请注明:http://www.cnblogs.com/gistao/ 背景 上一篇只是细致的把源码分析了一遍,而源码背后的设计思想并没有写,设计思想往往是最重要的,没有它,基本无法做整 ...
- dapper 学习
上一篇, 提到Query<Test>查询的时候, 如果Test中包含自定义class, Dapper不会给自定义class完成映射, 而是直接给null, 其实是可以实现的, 答案就在下面 ...
- UE4 Windows平台部署游戏到IOS 第二部分
点击加号后会出来如下截图 勾选上红色单选框处(因为这个我已经申请过了所以是灰色),然后continue到后面会出现下图 选择一个之前我提到申请证书会用的的那个.csr后缀文件夹,完成以后就可以下载证书 ...
- unity选择形象并替换
//将需要的素材放入Resources文件夹内,比如下面的意思是monster文件夹内的内容 Sprite[] sprites = Resources.LoadAll<Sprite>(&q ...
- 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏
1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...
- 强制span不换行
对于上一篇提到的overflow的问题我好像搞懂一些了.事情大概是这个样子的:如果用了float属性,那么元素就会脱离文本的束缚,无法无天起来,这肯定是猿类无法忍受的.要想让他们乖乖就范,要么用清除浮 ...
- 【转载】浅谈游戏开发之2D手游工具
浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android 程序设计: 其它 编程语言: 引擎/SDK ...
- iOS_Swift初识之使用三种回调方式自定义Button
最近在学习Swift ,发现青玉伏案大神早期用OC写的一篇博客--IOS开发之自定义Button(集成三种回调模式) 很适合用来熟悉Swift的回调方式,于是我就用Swift翻版了一下,具体实现原理 ...
- PHP常用的文件操作函数集锦
以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件 ...