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 ...
随机推荐
- android抽屉总结
android抽屉:1.DrawerLayout 在xml文件中要注意写全称:android.support.v4.widget.DrawerLayout <LinearLayout /> ...
- 2016.8.16 Java培训第一天
1. 十进制转换二进制 31/2=15余1 15/2=7余1 7/2=3余1 3/2=1余1 31的二进制结果为11111 35/2=17余1 17/2=8余1 8/2=4余0 4/2=2 ...
- (转)建站知识:域名/ 空间/ IP/ 端口之间的关系
先说域名解析吧,比如说你的域名是 www.sunnymould.com,这个域名对应着一个IP地址,域名解析就是把上面的域名转换成这个IP地址的过程,这样你就可以域名访问了上面地址上的内容了. 端口映 ...
- 通过Mac远程调试iPhone/iPad上的网页(转)
我们知道在 Mac/PC 上的浏览器都有 Web 检查器这类的工具(如最著名的 Firebug)对前端开发进行调试,而在 iPhone/iPad 由于限于屏幕的大小和触摸屏的使用习惯,直接对网页调试非 ...
- Code First Migrations更新数据库结构(数据迁移)
背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建 (DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们 ...
- javascript 去掉空格之后的字符 正则表达式
从后端数据库读取时间时,经常会把整个日期年月日包括时分秒都取到,如2015-1-28 14:56:00,但是一般的我们只需要前面的年月日就行了.一个简单的方法,直接用split(" &quo ...
- 《BI那点儿事》SSRS图表和仪表——雷达图分析三国超一流谋士、统帅数据(图文并茂)
雷达图分析三国超一流谋士.统帅数据,献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解 建立数据环境: -- 抽取三国超一流谋士TOP 10数据 DECLARE @t1 TA ...
- Web API开发实例——对产品Product进行增删改查
1.WebApi是什么 ASP.NET Web API 是一种框架,用于轻松构建可以由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务.ASP.NET Web API 是一种用于在 .NET ...
- requestAnimationFrame 动画
requestAnimationFrame : 调用这个方法,就是告诉浏览器要执行动画了,从而浏览器自动计算动画时间间隔,从而在恰当的时候刷新UI, 动画更加平滑. 他的用法和setTimeout() ...
- PBcR - 纠错及组装算法
单分子测序reads(PB)的混合纠错和denovo组装 我们广泛使用的PBcR的原始文章就是这一篇 原文链接:Hybrid error correction and de novo assembly ...