一 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. Js删除字符串中的指定字符串

    案例一. 比如:原字符串 var StringFirst = "12:30:08"; 现在要删掉冒号,变成123008 就可以先split var splitFirst = Str ...

  2. shell分析http日志

    http状态码1字头----信息,服务器收到请求,需要请求者继续执行操作2字头----成功,操作被成功接收并处理3字头----重定向,需要进一步的操作以完成请求4字头----客户端错误,请求包含语法错 ...

  3. Win32程序支持命令行参数的做法(转载)

    转载:http://www.cnblogs.com/lanzhi/p/6470406.html 转载:http://blog.csdn.net/kelsel/article/details/52759 ...

  4. PyCharm/IDEA 使用技巧总结

    基本概念 IDEA 没有类似 Eclipse 的工作空间的概念(workspace),最大单元就是 Project.这里可以把 Project 理解为 Eclipse 中的 workspace.Mod ...

  5. KMP 初级板子 待更新

    复杂度 O(n+m) 这个博主写的蛮不错的 http://www.cnblogs.com/SYCstudio/p/7194315.html 1.本文中,所有的字符串从0开始编号2.为了在程序中表示方便 ...

  6. triggerHandler不执行事件默认值

    <input type="text" /> $('input').triggerHandler('focus');

  7. 用 SwitchHosts设置hotst, 用法示例

    涉及到本地默认ip(localhost,127.0.0.1)设置关联地址时,使用XAMPP本地服务器时避免自动跳转设置的域名的一些处理方法 打开此文件,把内容修改如下 # Virtual Hosts# ...

  8. 【转】<c:forEach varStatus="status">中 varStatus的属性简介 及应用

    转载原因:在做页面的时候,需要在页面中判断循环了第几次和一共循环了多少次,在网上搜集的时候,看到这篇帖子,觉得太全面了,于是转载了.... varStatus是<c:forEach>jst ...

  9. Java zip解压,并遍历zip中的配置文件 .cfg或.properties

    1.解析cfg或properties配置文件 讲配置文件,读取,并封装成为map类型数据 /** * 解析cfg文件 * * @param cfgFile * @return */ public st ...

  10. C# Int转Enum

    Int-->Enum (1)可以强制转换将整型转换成枚举类型. 例如:Colors color = (Colors)2 ,那么color即为Colors.Blue (2)利用Enum的静态方法T ...