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)

替换某个数组中内容

[array replaceObjectAtIndex:0 withObject:@"petter"]; 
交换两个下标元素内容
[array exchangeObjectAtIndex:2 withObjectAtIndex:5]; 
将另一个数组内容添加到这个数组内
[array addObjectsFromArray:array1]; 
删除元素

[array removeObjectAtIndex:0];

[array removeObject:@"bat-man"];
删除所有元素

[array removeAllObjects]; 

遍历数组(两种方法  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的更多相关文章

  1. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  2. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

  3. 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比

    C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...

  4. 嵌入式&iOS:回调函数(C)与block(OC)回调对比

    学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...

  5. WebViewJavascriptBridge源码探究--看OC和JS交互过程

    今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...

  6. OC泛型

    OC泛型 泛型是程序设计语言的一种特性,他主要是为了限制类型的,比如OC中的数组,你可以限制他里面装的是NSString类型,泛型的话JAVA和C++都有的,大家要是对泛型不了解的话可以去百度一下. ...

  7. iOS学习15之OC集合

    1.数组类 1> 回顾C语言数组 数组是一个有序的集合, 来存储相同数据类型的元素. 通过下标访问数组中的元素,下标从 0 开始. 2> 数组 数组是一个有序的集合,OC中的数组只能存储对 ...

  8. JS 与OC 交互篇

    完美记录交互 CSDN博客: (OC调用JS) http://blog.csdn.net/lwjok2007/article/details/47058101 (JS调用OC) http://blog ...

  9. OC中加载html5调用html方法和修改HTML5内容

    1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...

随机推荐

  1. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

  2. (7) 深入了解Java Class文件格式(六)

    转载:http://blog.csdn.net/zhangjg_blog/article/details/21888943 经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, ...

  3. RebotFrameWork的分层思想

    RebotFrameWork的分层思想 分层思想,就是通过关键字调用的方法,把大杂烩的代码根据脚本特征拆封开来,提高代码的灵活性和清晰度,从而也让一些组件层内容可扩展.可复用.可维护. 解析下目录结构 ...

  4. qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110

    上位机:ubuntu14.04 64bit 下位机:qq2440 交叉编译器:arm-linux-gcc 3.4.1 下位机使用的linux内核版本:kernel2.6.13 1.插入u盘时错误信息如 ...

  5. Linux信号基础

    Linux信号基础   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux进程基础一文中已经提到,Linux以进程为单位来 ...

  6. 关于js touch事件 的引用设置

    一开始做前端页面的时候,接触的也是js,但是随后便被简单高效的jquery吸引过去,并一直使用至今. 而js,则被我主观的认为底层技术而抛弃. 直到这几天工作需要,研究移动端页面的触屏滑动事件,搜索j ...

  7. python uuid、hex study

    由 import uuid product[“SourceInfo"]["ProductID"] = uuid.uuid4().hex 引起的uuid 一.概述 uuid ...

  8. 学习mongo系列(八)密码与权限

    一.设置密码及用户角色[1] > db.createUser(... {... user: "maxh",... pwd: "123",... roles ...

  9. iOS开发 利用Reachability判断网络环境

    导入头文件:#import "Reachability.h" 然后将 SystemConfiguration.framework 添加进工程: 1.检查当前的网络状态(wifi.W ...

  10. kafka集群zookeeper集群详细配置

    http://www.cnblogs.com/luotianshuai/p/5206662.html