OC NSNumber和NSValue和NSDate和NSData
一 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的更多相关文章
- NSNumber、NSValue、NSDate、NSObject
注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...
- 02-Foundation-NSMutableString、NSNumber、NSValue、NSDate、NSArray
目录: 一.NSMutableString可变字符串 二.NSNumber数字对象 三.NSValue 四.NSDate日期对象 五.NSArray数组对象 回到顶部 一.NSMutableStrin ...
- OC中常见的结构体,以及NSNumber、NSValue、NSDate的使用
常见的结构体 NSPoint和CGPoint NSSize和CGSize NSRect 和 CGRect NSPoint和CGPoint的使用 NSPoint和CGPoint是同义的 typedef ...
- oc77--结构体,NSNumber,NSValue,NSDate,NSCalendar
// // main.m // OC中的常用结构体 // #import <Foundation/Foundation.h> int main(int argc, const char * ...
- OC NSNumber NSValue
OC NSNumber NSValue iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. NSNumber包装类 普通初始化 NSNumber * num1 = ...
- iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...
- NSNumber和NSValue
在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现 ...
- NSNumber 、 NSValue 、 日期处理 、 集合类 、 NSArray(一)
1 基本数据类型的封装 1.1 问题 我们所学的所有基本数据类型,如int.float.double.char等,都不是对象,不能向它们发送消息.然而,在Foundation中的许多类,如NSArra ...
- NSNumber 与NSValue
NSNumber与NSValue关系与作用 .由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们 ...
随机推荐
- 04: Form 验证用户数据 & 生成html
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- Android 实践项目开发 总结
Android 实践项目开发 总结 课程:移动平台应用开发实践 班级:201592 姓名:杨凤 学号:20159213 成绩:___________ 指导老师:娄嘉鹏 ...
- PN结讲解
可能大家在使用半导体器件的时候只是在使用它的电气属性,并没有很好的关心下它是什么原因才有了这样的电气属性,那么我们本篇就从物理结构分析下PN结吧. 首先看一张比较陈旧的图图: (就按自己的笔记简单谈谈 ...
- nohup 日志切割
最近遇到日志切割的问题,即程序是通过命令: nohup python *.py & 放到后台执行的,这样程序的日志输出到了nohup自动生成的nohup.out文件. 问题就来了,nohup. ...
- Python非递归遍历多叉树
class Queue: def __init__(self,max_size): self.max_size = int(max_size) self.queue = [] def put(self ...
- MYSQL语句:创建、授权、查询、修改、统计分析等 二 用户的创建、权限设置、删除
接着上面一的内容 4.设置更改用户密码 命令格式:SET PASSWORD FOR 'username'@'host'=PASSWORD('newpassword'); 如果是当前登录用户用:SET ...
- python获取文件扩展名的方法
主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧 import os.path def file_extension(path): ] print file_ex ...
- html 表格中添加圆
效果: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...
- hihoCoder 1636 Pangu and Stones
hihoCoder 1636 Pangu and Stones 思路:区间dp. 状态:dp[i][j][k]表示i到j区间合并成k堆石子所需的最小花费. 初始状态:dp[i][j][j-i+1]=0 ...
- HDU 4054 Number String
HDU 4054 Number String 思路: 状态:dp[i][j]表示以j结尾i的排列 状态转移: 如果s[i - 1]是' I ',那么dp[i][j] = dp[i-1][j-1] + ...