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 ...
随机推荐
- 2016年上半年金融类App成绩单,手机银行优势尽显! (转自Analysys易观(ID:enfodesk))
2016已悄然时过大半,金融各领域经过了开年大战,二季度末尾的6月更是几家欢喜几家愁,其中频繁出现的黑马更是足够让人惊喜.我们基于易观千帆6月移动应用大数据,筛选了百款金融类App为您揭晓TOP100 ...
- LeetCode----172. Factorial Trailing Zeroes(Java)
package singlenumber136; //Given an array of integers, every element appears twice except for one. F ...
- Vue-简单购物车
优点 体积小.接口灵活.侵入性好,可用于页面的一部分,而不是整个页面.扩展性好.源码规范简洁.代码较为活跃,作者是中国人,可在官方论坛中文提问.github9000+.基于组件化的开发. 缺点 社区不 ...
- shiro 从入门到放弃
Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大 ...
- Hadoop学习笔记:MapReduce框架详解
开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能 ...
- Unity3D 材质球设置参数无效果的解决方法
要设置shader里有下划线的属性名,而不是后面字符串的属性名. Color tmp = ,,,alpha); mat.SetColor("_Color", tmp);
- Exception&Error
Java异常处理 1:什么是异常 异常(Exception)也叫异常.在Java编程语言中,异常就是程序在运行过程中由于硬件设备问题.软件设计错误.缺陷等导致的程序错误. 1.1:想打开的文件不存在 ...
- Cheatsheet: 2015 08.01 ~ 08.31
Java Beginner's Guide to MVC with Spring Framework Exploring the Spring Web MVC for Web Application ...
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- C#:类和结构的区别
第一.引用类型和值类型 类属于引用类型,而结构属于值类型. 结构在赋值时进行复制. 将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据. 第二.继承性 类可以继承类 ...