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 ...
随机推荐
- js 获取参数
<html lang="en"> <head> <meta charset="UTF-8"> <meta name=& ...
- CSS3 笔记一(Rounded Corners/Border Images/Backgrounds)
CSS3 Rounded Corners The border-radius property is a shorthand property for setting the four border- ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- LR HTML与URL录制方式区别
Recording录制选项 这里提供了两个大类的录制方式: 1. HTML-based script基于HTML的脚本 这种方式录制出来的脚本是基于HTML基础的,为每个用户操作生成单独的步骤,这种脚 ...
- jquery幻灯片
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 微信 xml 转 Map
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml + ...
- [issue] dyld`dyld_fatal_error: -> 0x120015088 <+0>: brk #0x3
iOS "dyld`dyld_fatal_error: -> 0x12000d088 <+0>: brk #0x3"错误 根据上面的博客里的方法二 尝试解决方法二 ...
- 原!!mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
需求: 1.直接执行前端传来的任何sql语句,parameterType="String", 2.对于任何sql语句,其返回值类型无法用resultMap在xml文件里配置或者返回 ...
- Php数据类型之整型详解
php中支持的数据类型 在php中主要支持8种数据类型.和3中伪类型的一个形式.8种数据类型分为以下三3大类,第一个就是我们的标量类型,标量类型它只能存储单一数据,那第二大类就是我们的复合类型,第三个 ...
- python 学习中遇到的问题
一.安装pip中遇到的问题. 出现错误:ImportError:DLL load failed :%1不是有效的win32应用程序 出现问题解答: 主要是由于安装的python版本和所下载的安装包版本 ...