OC之0801
1,字符串
字符串的创建:两种常用初始化方式
NSString *str=[[NSString alloc]initWithFormat:@"i am a boy"];
NSString *str1=[NSString stringWithFormat:@"i am a boy"];
NSString *str2=@"i am a good boy";
字符串的操作:
字符串的截取
strMax=[str2 substringToIndex:5];
strMax=[str2 substringFromIndex:3];
strMax=[str2 substringWithRange:NSMakeRange(2, 4)];
获取字符串长度
NSLog(@"%lu",[strMax length]);
获取某段字符串在字符串的位置及其长度:用点语法
NSRange range=[str rangeOfString:@"boy"];
NSLog(@"字符串位置:%ld 字符串长度: %ld",range.location,range.length);
分割字符串
NSMutableArray *arry=[str componentsSeparatedByString:@""];
字符串的拼接
strMax=[str1 stringByAppendingString:str2];
可变字符串(NSMutableString)NSMutableString *str=[[NSMutableString alloc]initWithFormat:@"i am a boy"];
增加三种方法:插入 删除 替换
[str insertString:@"spider-man" atIndex:2];
[str deleteCharactersInRange:NSMakeRange(2, 5)];
[str replaceCharactersInRange:NSMakeRange(3, 8) withString:@"iron-men"];
2,数组
数组的初始化
字符串的操作
取某下标元素
NSString *str=[arr objectAtIndex:0];
数组容量
NSInteger count=[arr count];
取某元素下标
NSUInteger index=[arr indexOfObject:@"e"];
判断是否包含某种元素,返回bool值
BOOL is=[arr containsObject:@"key"];
可变数组(NSMutableArray)
替换某个数组中内容
遍历数组(两种方法 for 循环 和 for in)
3,字典
创建字典并用数组作为对象对其进行初始化
NSArray *array = [NSArray arrayWithObjects:@"iron-men",@"tony",@"captain", @"setef",nil];
NSMutableDictionary *dic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:array,@"superhero", nil];
向字典中添加元素
[dic setObject:@"petter" forKey:@"spider-men"];
删除字典中的key
[dic removeObjectForKey:@"spider-men"];
遍历字典
方法一:快速遍历
for (id key in dic) {
id value=[dic objectForKey:key];
NSLog(@"%@",value);
}
方法二,先取出再输出
NSArray *key=[dic allKeys];
for (int i=0;i<[key count];i++){
id key1=[key objectAtIndex:i];
id value=[dic objectForKey:key1];
NSLog(@"%@",value);
}
4,集合NSSet
要点:NSSet元素是无序的 ,且没有重复
两种初始化方法
NSSet *setOne=[[NSSet alloc]initWithObjects:@"1",@"2",@"34",@"45", nil];
NSSet *setTwo=[NSSet setWithObjects:@"1",@"678",@"4536",@"4", nil];
直接转数组
NSMutableArray *arr=[[NSMutableArray alloc]initWithObjects:[setOne allObjects],nil];
随机取出任意元素
[setOne anyObject];
判断集合中是否存在某元素,返回bool值
BOOL is=[setTwo containsObject:@"3333"];
增加集合中的元素,by对象 by集合 by数组
[setTwo setByAddingObject:@"yy"];
[setTwo setByAddingObjectsFromSet:setOne];
[setTwo setByAddingObjectsFromArray:arr];
集合间的数学操作:减集,交集,并集(都是对可变集合而言NSMutableSet)
[setTwo minusSet:setOne];
[setTwo intersectSet:setOne];
[setTwo unionSet:setTwo];
5,NSNumber和 NSValue
NSNumber和 NSValue 都是包装类,其中NSValue是NSNumber的父类,他们用于包装一些int, folat ,long ,char,short等基本数据类型
通过包装就可以将基本数据类型添加到NSArry和NSSet等(要求元素必须是对象)中
NSNumber *n1=[NSNumber numberWithInt:23];
NSNumber *n2=[NSNumber numberWithFloat:5.6f];
[arr addObject:n1];
[arr addObject:n2];
6,日期
获取当前时间
NSDate *date1=[NSDate date];
从现在起一天后的日期
NSDate *date2=[[NSDate alloc]initWithTimeIntervalSinceNow:3600*24];
从现在起一天前的日期
NSDate *date2=[[NSDate alloc]initWithTimeIntervalSinceNow:-3600*24];
获取当前时区的标准时间
NSDate *date1=[NSDate date];
NSLocale *cn=[NSLocale currentLocale];
NSLog(@"%@",[date1 descriptionWithLocale:cn]);
输出格式如下
2016-08-02 22:02:07.861 review[24866:1504438] 2016年8月2日星期二中国标准时间 22:02:07
获取两个日期之间较早的日期
NSDate *earlier=[date2 earlierDate:date3];
获取两个日期之间晚的日期
NSDate *earlier=[date2 laterDate:date3];
两个日期的秒差
[earlier timeIntervalSinceDate:date3];
[earlier timeIntervalSinceNow];
两个日期间的比较,返回bool值
日期格式器(NSDateFormatter)
自定义输出格式
NSDateFormatter *format=[[NSDateFormatter alloc]init];
[format setDateFormat:@"yyyy-MM-dd-HH-mm"];
NSLog(@"%@",[format stringFromDate:date1]);
系统自带风格
[format setDateStyle:NSDateFormatterNoStyle];
[format setDateStyle:NSDateFormatterShortStyle];
[format setDateStyle:NSDateIntervalFormatterLongStyle];
[format setDateStyle:NSDateIntervalFormatterMediumStyle];
日历(NSCalendar)和日期组件(NSDateComponents)
获取代表公历的NSCalendar对象
NSCalendar *gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
定时器(NStimer)
设定一个定时器
NSInteger _count;
NSTimer* _timer;
- (void) info:(NSTimer*)timer{
NSLog(@"正在执行第%ld次任务",_count++);
if (_count>10) {
NSLog(@"取消执行定时器");
[_timer invalidate];
}
_timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(info:) userInfo:nil repeats:YES];
}
OC之0801的更多相关文章
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- 用C语言封装OC对象(耐心阅读,非常重要)
用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...
- 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比
C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...
- 嵌入式&iOS:回调函数(C)与block(OC)回调对比
学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...
- WebViewJavascriptBridge源码探究--看OC和JS交互过程
今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...
- OC泛型
OC泛型 泛型是程序设计语言的一种特性,他主要是为了限制类型的,比如OC中的数组,你可以限制他里面装的是NSString类型,泛型的话JAVA和C++都有的,大家要是对泛型不了解的话可以去百度一下. ...
- iOS学习15之OC集合
1.数组类 1> 回顾C语言数组 数组是一个有序的集合, 来存储相同数据类型的元素. 通过下标访问数组中的元素,下标从 0 开始. 2> 数组 数组是一个有序的集合,OC中的数组只能存储对 ...
- JS 与OC 交互篇
完美记录交互 CSDN博客: (OC调用JS) http://blog.csdn.net/lwjok2007/article/details/47058101 (JS调用OC) http://blog ...
- OC中加载html5调用html方法和修改HTML5内容
1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...
随机推荐
- Pet Shop4.0
http://blog.csdn.net/RainyLin/article/details/1769947
- linux dynamic debug 官方教程
下载内核后,文档在:Documentation/dynamic-debug-howto.txt 中文版本:http://www.oschina.net/translate/dynamic-debug- ...
- WPF+WEB+WinForm->>表现层共用类
首先在解决方案里新建一个类库,然后在解决方案里新建三个项目,WPF,WEB,WinForm,但是这三个项目都需要一个计算类进行计算,那么就在新建的类库Calculator里面放一个Calculat.c ...
- BW常用事务码Tcode
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 查看数据源所对应的PSA物理表
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SQL疑难杂症【5 】大量数据查询的时候要考虑结果为空的情况
最近几天怪事儿出奇的多,同一个工单.同一个产品,在A线可以正常生产,但是在H线死活都无法生产,系统直接提示TimeOut,监控发现有一条SQL语句执行缓慢,Copy出来仔细查看,很简单的一条语句,如下 ...
- HDU 5775 Bubble Sort(冒泡排序)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- PHP-----数据类型,运算符
文件解析流程: 基本语法: 和Javascript很像.Ps:变量名可以使用关键字,但是最好不建议使用.关于PHP和HTML的混编,写起来可能比较方便,但是不便于阅读. 数据类型: 其中的资源类型是一 ...
- windows下MySQL 5.7+ 解压缩版安装配置方法
方法来自伟大的互联网. 1.去官网下载.zip格式的MySQL Server的压缩包,根据需要选择x86或x64版.注意:下载是需要注册账户并登录的. 2.解压缩至你想要的位置. 3.复制解压目录下m ...
- javaScript对文字按照拼音排序
<title>JavaScript对文字按照拼音排序</title> <SCRIPT type="text/javascript"> funct ...