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] 201682星期二中国标准时间 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. curl_init函数用法

    使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了.无论是你想从从一个链接上取部分数据,或是取一个XML文件并 ...

  2. How to use usercontrol - pass paramters

    在线PhotoShop http://uupoop.com/ In the previous chapter we created a UserControl, and now we will try ...

  3. 打包app命令行

    $ cd myApp $ ionic platform add android $ ionic build android $ ionic emulate android

  4. 用NULL布局为什么不能显示

    import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing. ...

  5. HTML5的数据自动补齐功能

    使用datalist元素,HTML5允许使用一组数据来生成自动补齐功能,现在你不需要使用第三方js代码或者类库啦! <input name="frameworks" list ...

  6. 2015弱校联盟(1) - B. Carries

    B. Carries Time Limit: 1000ms Memory Limit: 65536KB frog has n integers a1,a2,-,an, and she wants to ...

  7. mfc显示静态图片最简单的方法

    一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...

  8. llinux 压缩 解压

    1.zip  1) 将文件夹 mydir 压缩为 mydir.zip zip -r mydir.zip mydir 2) 将文件 one.two 压缩到 ot.zip zip -r ot.zip on ...

  9. DSO转换规则的Aggregation默认为覆盖MOV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. Oracle存储过程-自定义数据类型,集合,遍历取值

    摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...