一 NSNumber

 //
// main.m
// 07-NSNumber
//
// Created by apple on 13-8-12.
// Copyright (c) 2013年 itcast. All rights reserved.
// #import <Foundation/Foundation.h> int main()
{
// @20 将 20包装成一个NSNumber对像 NSArray *array = @[ @{@"name" : @"jack", @"age" : @}, @{@"name" : @"rose", @"age" : @}, @{@"name" : @"jim", @"age" : @}
]; // 将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'A'; // NSNumber对象 @"A"; // NSString对象 // 将age变量包装成NSNumber对象
int age = ;
@(age);
//[NSNumber numberWithInt:age]; NSNumber *n = [NSNumber numberWithDouble:10.5]; int d = [n doubleValue]; int a = ; // @"20"
NSString *str = [NSString stringWithFormat:@"%d", a];
NSLog(@"%d", [str intValue]); return ;
} void test()
{
NSNumber *num = [NSNumber numberWithInt:]; NSDictionary *dict = @{
@"name" : @"jack", @"age" : num }; NSNumber *num2 = dict[@"age"]; int a = [num2 intValue]; NSLog(@"%d" , a);
}

二 NSValue

 #import <Foundation/Foundation.h>

 // NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue

 int main()
{ // 结构体--->OC对象 CGPoint p = CGPointMake(, );
// 将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p]; // 将value转为对应的结构体
// [value pointValue]; NSArray *array = @[value ]; // insert code here...
// NSLog(@"这是哥修改过的东西6");
return ;
}

三 NSDate

 #import <Foundation/Foundation.h>
void date2string();
void use();
int main()
{
// 09/10/2011
NSString *time = @"2011/09/10 18:56"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy/MM/dd HH:mm"; NSDate *date = [formatter dateFromString:time];
NSLog(@"%@", date);
date2string();
use();
return ;
} void date2string()
{
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);
} void use()
{
// 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东8区)
NSLog(@"%@", date); NSDate *date2 = [NSDate dateWithTimeInterval: sinceDate:date]; // 从1970开始走过的秒数
NSTimeInterval seconds = [date2 timeIntervalSince1970]; // [date2 timeIntervalSinceNow];
}

四、NSNumber、NSValue、NSData和NSDate课堂笔记

 #import <Foundation/Foundation.h>

 #import "People.h"

 typedef struct student
{
char name[];
NSInteger age;
}stu; int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!"); /*
0.炒鸡排序
1.NSNumber -对基本数据类型进行对象转换
2.NSValue -对结构体或自定义结构体转换
3.NSData -对字符串进行封装(二进制转换)
4.NSDate -日期
{
a.日期初始化
b.日期格式使用(NSDateFormatter)
c.时间间隔使用(NSTimeinterval)
d.验证快速遍历和for循环 }
*/ //NSNumber int number = ; int number1 = ;
//基本数据类型包装成对象
NSNumber *num = [[NSNumber alloc] initWithInt:number1]; NSArray *arr1 = @[num,@(number)];
NSLog(@"%@",arr1);
// NSLog(@"%d",num); // 把对象还原成基本数据类型
int newNumber1 = [[arr1 objectAtIndex:] intValue];
NSLog(@"%d",newNumber1); //NSValue
NSRange range = NSMakeRange(, );
//把结构体包装成对象
NSValue *rangeValue = [NSValue valueWithRange:range]; NSArray *arr2 = @[rangeValue]; NSLog(@"%lu %lu",range.location,range.length);
NSLog(@"%@",arr2); NSRange newRange;
//把对象还原成结构体
[rangeValue getValue:&newRange];
NSLog(@"%lu %lu",newRange.location,newRange.length); //封装自定义结构体
stu bowen;
bowen.age = ;
// 把自定义结构体封装成对象
NSValue *stuValue = [[NSValue alloc] initWithBytes:&bowen
objCType:@encode(stu)] ;
NSLog(@"%@",stuValue); stu newbowen;
// 把对象还原成结构体
[stuValue getValue:&newbowen];
NSLog(@"%ld",newbowen.age); //NSData
NSString *str = @"";
// 把字符串封装成Data对象
NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",strData);
// 把Data还原成字符串
NSString *finalStr = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
NSLog(@"%@",finalStr); //NSDate
// 日期初始化
NSDate *now = [NSDate date];
NSLog(@"%@",now); NSDate *date1 =[NSDate dateWithTimeInterval:** sinceDate:now];
NSLog(@"%@",date1); NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:****];
NSLog(@"%@",date2); NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow:**];
NSLog(@"%@",date3); NSDate *date4 = [NSDate dateWithTimeIntervalSinceReferenceDate:*];
NSLog(@"%@",date4); //日期格式NSDateFormatter
NSDate *date5 = [NSDate date]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; /*
YYYY/yyyy 年
MM 月
dd 日 HH/hh 时
mm 分
ss 秒
*/
//日期转换成字符串
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStr = [formatter stringFromDate:date5];
NSLog(@"%@",dateStr); //字符串转化成日期
NSString *newStr = @"2015-08-18 23-17-19";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *newDate = [dateformatter dateFromString:newStr];
NSLog(@"%@",newDate); //时间间隔 NSTimeinterval
NSDate *date6 = [NSDate date];
NSDate *date7 = [NSDate dateWithTimeIntervalSinceNow:];
NSTimeInterval timeinterval = [date6 timeIntervalSinceDate:date7]; NSLog(@"%f",timeinterval); //快速遍历
NSArray *arr10 =@[@"",@"",@"",@"",@"",@"",@"",@"",@"",@""];
NSDate *before = [NSDate date]; for (NSString *str10 in arr10) {
NSLog(@"%@",str10);
} NSDate *after =[NSDate date];
NSTimeInterval timeinterval1 = [after timeIntervalSinceDate:before]; NSLog(@"快速遍历:%f",timeinterval1); //普通循环
NSDate *before1 = [NSDate date]; for (int i=; i<arr10.count; i++) {
NSLog(@"%@",[arr10 objectAtIndex:i]);
} NSDate *after1 = [NSDate date];
NSTimeInterval timeinterval2 = [after1 timeIntervalSinceDate:before1]; NSLog(@"普通循环:%f",timeinterval2); }
return ;
}

OC NSNumber和NSValue和NSDate和NSData的更多相关文章

  1. NSNumber、NSValue、NSDate、NSObject

    注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...

  2. 02-Foundation-NSMutableString、NSNumber、NSValue、NSDate、NSArray

    目录: 一.NSMutableString可变字符串 二.NSNumber数字对象 三.NSValue 四.NSDate日期对象 五.NSArray数组对象 回到顶部 一.NSMutableStrin ...

  3. OC中常见的结构体,以及NSNumber、NSValue、NSDate的使用

    常见的结构体 NSPoint和CGPoint NSSize和CGSize NSRect 和 CGRect NSPoint和CGPoint的使用 NSPoint和CGPoint是同义的 typedef ...

  4. oc77--结构体,NSNumber,NSValue,NSDate,NSCalendar

    // // main.m // OC中的常用结构体 // #import <Foundation/Foundation.h> int main(int argc, const char * ...

  5. OC NSNumber NSValue

    OC NSNumber NSValue iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. NSNumber包装类 普通初始化 NSNumber * num1 = ...

  6. iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

  7. NSNumber和NSValue

    在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现 ...

  8. NSNumber 、 NSValue 、 日期处理 、 集合类 、 NSArray(一)

    1 基本数据类型的封装 1.1 问题 我们所学的所有基本数据类型,如int.float.double.char等,都不是对象,不能向它们发送消息.然而,在Foundation中的许多类,如NSArra ...

  9. NSNumber 与NSValue

    NSNumber与NSValue关系与作用 .由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们 ...

随机推荐

  1. Observer模式实践

    Observer 模式在实践中的应用场景: 为 Point 类设计一个数据绑定机制,当其坐标 x 或 y 被更改时,可以通知外界其更改的过程.将更改过程打印在控制台上.考虑使用松耦合设计. 代码: # ...

  2. npm 查看全局安装过的包

    查看全局安装的包 npm list -g --depth 0 非全局安装的包 npm list --depth 0 如果不加参数 --depth 0会显示安装的包以及相关的依赖包,会显示的很详细.

  3. 20145206邹京儒《网络对抗技术》 PC平台逆向破解

    20145206邹京儒<网络对抗技术> PC平台逆向破解 注入shellcode并执行 一.准备一段shellcode 二.设置环境 具体在终端中输入如下: apt-cache searc ...

  4. 20145227鄢曼君《网络对抗》Web基础

    20145227鄢曼君<网络对抗>Web基础 实验内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建 ...

  5. 20145329 《网络对抗技术》客户端Adobe阅读器渗透攻击

    两台虚拟机: kali ip:192.168.96.130 windows xp sp3 ip:192.168.96.133 1.kali下打开显示隐藏文件 2.在kali终端中开启msfconsol ...

  6. Python3基础 raise 产生RuntimeError 异常

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Go第三篇之大话容器

    Go语言数组 数组(Array)是一段固定长度的连续内存区域 在 Go 语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 Go 语言数组的声明 数组的写法如下: var 数组变 ...

  8. AP与CP介绍【转】

    本文转载子:https://blog.csdn.net/wqlinf/article/details/8663170 基带芯片加协处理器(CP,通常是多媒体加速器).这类产品以MTK方案为典型代表,M ...

  9. linux中线程池【转】

    本文转载自:http://blog.csdn.net/yusiguyuan/article/details/18401277 一.线程池 大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时 ...

  10. <OFFER> 06_PrintListInReversedOrder

    #include<stack> #include "List.h" void PrintListReversingly_Iteratively(ListNode* pH ...