OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)
//一: 迭代器
//数组
NSArray *arr=@[@"1",@"2",@"3",@"4",@"5"];
NSEnumerator *enumerator = [arr
objectEnumerator];
NSString *str =
nil;
while (str = [enumerator
nextObject]) {
NSLog(@"%@",str);
}
// 字典
//直接打印字典的vaule.
NSDictionary *dic =
@{@"1":@"2",@"3":@"4"};
NSEnumerator *enumrator = [dic
objectEnumerator];
NSString *vaule =
nil;
while (vaule = [enumrator
nextObject]) {
NSLog(@"%@",vaule);
}
//二: 值对象 (相互转化)
// 1: NSNumber
//
那基本数据类型转换成对象类型.
// Integer -> NSNumber
;
NSNumber *num = [[NSNumberalloc]
initWithInteger:a];
NSLog(@"%@",num);
// NSNumber -> Integer
//(1)
NSInteger b = [num
integerValue];
//(2)
NSNumber *number =
@10;
NSArray *arr =
@[@"1",@10];
// 2: NSValue
//
把结构体和指针转换成对象类型.
//
结构体的.
用于訪问自己的成员变量;不是对象调用自己属性的点语法.
//NSRange -> NSValue
,};
NSLog(@"%ld",range.length);
NSValue *value = [NSValuevalueWithRange:range];
NSArray *arr =
@[value];
// NSValue -> NSRange
NSRange rangeVau = [value
rangeValue];
//指针(pointer) -> NSValue
int a =
;
int *p = &a;
NSValue *pointer = [NSValuevalueWithPointer:p];
//NSValue ->指针(pointer)
int *p1 = [pointer
pointerValue];
//三: NSSet NSMutableSet -- 集合.
// NSSet是无序的.
NSSet *set = [NSSetsetWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"2",nil];
NSLog(@"%@",set);
NSLog(@"%ld",set.count);
NSLog(@"%@",[setanyObject]);
NSLog(@"%d",[setcontainsObject:@"3"]);
// 可变集合
NSMutableSet *set1 = [NSMutableSetset];
[set1addObject:@"9"];
[set1addObject:@"8"];
NSLog(@"%@",set1);
[set1removeObject:@"9"];
NSLog(@"%@",set1);
//
遍历
for (NSString *strin set1) {
NSLog(@"%@",str);
}
//四: NSDate
NSDate *date = [NSDatedate];
NSLog(@"%@",date);
// date
获取的时间不管哪个区,都是打印相相应的零时区
//
获取一下当前所在的时区.
NSTimeZone *zone = [NSTimeZonesystemTimeZone];
NSLog(@"%@",zone);
//
获取一下和零时区相差的秒数.
NSInteger sec = [zone
secondsFromGMTForDate:date];
NSLog(@"%ld",sec);
//
通过相差的秒数,能获取到如今的时间.
NSDate *newdate = [NSDatedateWithTimeIntervalSinceNow:sec];
NSLog(@"%@",newdate);
];
NSLog(@"%@",times);
//练习1:找明天这时候的时间.
NSDate *tomorrow = [NSDatedateWithTimeIntervalSinceNow:(sec
+ *)];
NSLog(@"明天的如今:%@",tomorrow);
//练习2: 昨天这时候时间.
*)sinceDate:newdate];
NSLog(@"昨天的如今:%@",yesterday);
//时间间隔
//
相应的Double 类型,
能够是小数.
//计算两个对象的时间间隔
NSTimeInterval interval = [tomorrow
timeIntervalSinceDate:yesterday];
NSLog(@"%g",interval);
//
练习3:计算当前时间与一个固定时间的差值.
];
NSLog(@"固定时间:%@",unchange);
NSLog(@"如今的时间%@",date);
NSTimeInterval inte = [unchange
timeIntervalSinceDate:date];
NSLog(@"时差为:%g",inte);
if (inte >
&& inte <) {
NSLog(@"刚刚");
}elseif( inte >=
&& inte <=){
);
}elseif(inte >
&& inte <=*){
);
}else{
/);
}
//五:日期和字符串的相互转换.
// NSDate -> NSString
// 第一种方式:
NSDate *date = [NSDatedate];
NSString *datestr = [NSStringstringWithFormat:@"%@",date];
NSLog(@"%@",datestr);
// 另外一种方式:
//时间的格式
// yyyy-MM-dd HH-mm-ss;
// y
年
// M
月
// d
日
// H 24小时制, h 12小时制
// m
分
// s
秒
//先设置一下时间的格式,要转换的时间要和格式相吻合.
NSDateFormatter *formatter = [[NSDateFormatteralloc]
init];
[formatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"];
NSDate *date = [NSDatedate];
//
通过格式,那指定的时间直接转换成NSString
//
通过这样的方式,系统会把时间切换成当前时间,无时区之差.
NSString *strdate = [formatter
stringFromDate:date];
NSLog(@"%@",strdate);
// NSString -> NSDate
//把时间又减去8小时.
NSString *time =@"2015-7-23 17-19-50";
NSDateFormatter *formatter2 = [[NSDateFormatteralloc]
init];
[formatter2 setDateFormat:@"yyyy-MM-dd HH-mm-ss"];
NSDate *date = [formatter2
dateFromString:time];
NSLog(@"%@",date);
OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)的更多相关文章
- 黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate
Objective-c 之Foundation之NSNumber ,NSValue, NSDate 1.NSNumber具体用法如下: 在Objective-c中有int的数据类型,那为什么还要使用数 ...
- OC NSNumber NSValue
OC NSNumber NSValue iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. NSNumber包装类 普通初始化 NSNumber * num1 = ...
- 数值类对象:NSNumber,NSValue,NSNull
基本,集合,复杂,对象 可用对象封装基本数值,然后将对象放入NSArray或NSDictionary 中. 用对象封装基本数值后,即可给其发送消息. 数值类型包括:NSNumber,NSValue,N ...
- Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)
1.NSNumber 将基础数类型数据转成对象数据(比如int float double BOOL long等等) //通过NSNumber将基础数类型数据转成对象数据. NSNumber * i ...
- iOS学习14之OC NSNumber + NSValue
1.NSNumber 数值类. 作用:实现基本数据类型与OC对象类型的相互转化. 1> NSNumber创建对象 // 初始化方法 NSNumber *num1 = [[NSNumber all ...
- 转:用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续)
NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)value; - (in ...
- NSNumber,NSValue和NSData
我们在编码中,很多时候需要将C里面原生的数据封装成对象,这样可以用NSDictionary或者NSArray来存取访问.尤其是一些做适配的情况下,这种封装是不可避免的.Objective-C提供了不少 ...
- Object-c学习之路十(NSNumber&NSValue)
// // main.m // NSNumberAndNSValue // // Created by WildCat on 13-7-26. // Copyright (c) 2013年 wildc ...
- IOS Note - Core NS Data Types
NSString (Immutable)NSMutableString (rarely used)NSNumberNSValueNSData (bits)NSDateNSArray (Immutabl ...
随机推荐
- 路飞学城Python-Day9(practise)
def save(): with open('practise_4', 'w+', encoding='utf-8') as f: for i in user_list: info = str(i) ...
- DedeCMS搜索结果页面调用自定义字段的方法
有时候在我们需要在dedecms的搜索结果页面调用自定义字段,尤其是在做下载站的时候,需要在搜索结果页调用软件大小以及软件等级等等,但是我们发现在搜索结果页模板中使用“[field:字段名]”标签无法 ...
- centos7.3安装php7.0
需求:在Centos7.3下搭建LNMP环境 文章转载自:http://blog.csdn.net/wszll_alex/article/details/76285324 作者:狂热森林 . 关闭防火 ...
- 埃及分数 迭代加深搜索 IDA*
迭代加深搜索 IDA* 首先枚举当前选择的分数个数上限maxd,进行迭代加深 之后进行估价,假设当前分数之和为a,目标分数为b,当前考虑分数为1/c,那么如果1/c×(maxd - d)< a ...
- 关于functioncharts饼状图篇
关于functioncharts饼状图(仅限饼状图) TODO: 1.饼状图没有数据情况下,显示:no data to display 2,解决的方法:自己定义处理.显示图像或其他内容
- 福利贴——爬取美女图片的Java爬虫小程序代码
自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...
- hdu_3308 区间合并
一两个月没写代码的确是手生的厉害,debug的好艰辛,,不过看到accept时的那种满足感真的就是爽 #include<iostream> #include<cstdio> # ...
- BZOJ 3280 费用流
思路: 同BZOJ 1221 //By SiriusRen #include <queue> #include <cstdio> #include <cstring> ...
- BackTrack5里使用OpenVAS
不多说,直接上干货! 前提 VM虚拟机的 BackTrack5安装完美图文教程: http://download.csdn.net/detail/u010106732/9845495 关于OpenAV ...
- 实时监控Cat之旅~配置Cat集群需要注意的问题
在配置cat集群时,有一些设置是我们应该注意的,从它的部署文档中我们可以看到相关信息,但说的还不够明确和重要,大叔今天总结一下Cat集群配置的注意事项 1 服务端datasources.xml用来设置 ...