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 ...
随机推荐
- 【Jersey】IntelliJ IDEA + Maven + Jetty + Jersey搭建RESTful服务
本文参考以下内容: 使用Jersey实现RESTful风格的webservice(一) Starting out with Jersey & Apache Tomcat using Intel ...
- .Net最佳实践3:使用性能计数器收集性能数据
本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...
- 模拟jquery
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Hadoop 2.4.x集群安装配置问题总结
配置文件:/etc/profile export JAVA_HOME=/usr/java/latest export HADOOP_PREFIX=/opt/hadoop-2.4.1 export HA ...
- URL的格式
URL RFC: http://www.ietf.org/rfc/rfc1738.txt URI RFC: http://www.ietf.org/rfc/rfc2396.txt 转自: http ...
- C library function - freopen()
Description The C library function FILE *freopen(const char *filename, const char *mode, FILE *strea ...
- 《BI项目笔记》创建多维数据集Cube(2)
本节建立: 历年的初烟水分均值变化分析Cube:区域维度:地州,专县时间维度:年等级维度:大等级,小等级指标:水分均值 数据源视图: 数据处理: ) ) DELETE FROM T_QualMoist ...
- sizeof既是关键字,又是运算符(操作符),但不是函数!
sizeof是关键字吗 sizeof是关键字,这一点毋庸置疑.你不能将sizeof定义为任何标识符.查看C语言标准文档里的说明: sizeof是运算符(操作符)吗 C语言中,sizeof是运算符(操作 ...
- Java防盗链机制
对于防盗链技术,网上提供了很多很多的相关技术,但是不是特别复杂就是效果不好. 这里在网上找到一种思路,就是关于HTTP协议响应头中包含的Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可 ...
- mysql数据库编码问题
http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 修改/etc/my.cnf 添加: [mysql] default-chara ...