黑马程序员---成长之路-----OC之基础篇Foundation框架
2015-10-19 01:24
591 查看
------<a href="http://www.itheima.com"target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!
什么是框架
框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架,通俗点说,其实框架就是一个约束体,就像我们生活中的窗框架一样,只不过时窗框架里放玻璃,而Foundation框架里放类、方法、函数、文档。
NSString字符串比较
字符串比较函数
1、比较字符串大小
字符串根据排列排序 的不同,会有大小的差异,oc中比较字符串大小的方法和C中的方法是
一样的,都是由ASCLL大小来确定大小的
compare方法就是比较字符串大小的方法,其返回结果有三种
实例:
"=="不能够判断字符串是否相等 如:
if(str1==str3)//这里其实比较的是地址
判断字符串内容真正是否相等,使用的是isEqualToString:
注意:这个方法是区分大小写的
NSString前后缀检查
判断字符串前缀
[str hasPrefix:@"要检测内容"];其中hasPrefix的返回值是BOOL类型的
判断字符串的后缀
[str hasSuffix:@"待检测后缀"] ;返回值也是BOOL类型的
字符串查找
查找某个字符串在另外一个字符串中首次出现的位置
原字符串 rangOfString 子字符串
NSRange range=[str1 rangeOfString:str2];//NSRange类的返回值是长整形
NSLog(@"%lu,%lu",range.location,range.length);//location表示下标,lenght表示长度
NSRange的使用
NSRange是Foundation框架中比较常用的结构体,
NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
NSRange有两个成员
NSRange location表示下标,NSRange lenght表示长度
NSRange创建的几种方式
结构体变量整体赋值
查看结构体变量的值
字符串的截取和替换
1截取
//0123456789
NSString str =@"jaeuhnakjd";
1、从xx位置开始,到最后结束(包含XX这个位置)
2、从开始位置,到XX位置结束(不包含XX这个位置)
截取一个范围(包含XX这个位置)
字符串的替换
替换函数:stringByReplacingOccurrencesOfString:@"原字符串内容"withString:@"替换内容"
NSString的其它用法
字符串和字符串
函数:
intValue
floatValue
...Value
NSString *str=@"1";
NSString *str2=@"3.14";
int a=10;
int b=[str intValue];
a=a+b
NSLog(@"a=%d",a);
//OC的字符串和C的字符串互相转换问题
//char * NSString
//C----->OC对象
char *s="zhangsanfeng";
printf("%s\n",s);
//思路:创建一个OC的字符串对象,用C语言的字符串创建
NSString *str=[NSString stringWithUTF8String:s];
//OC---->C的字符串
NSString *str2=@"zbz";
char *s1=[str2 UTF8String];
printf("s1=%s\n",s1);
NSMutableString类继承NSString类,NSMutableString类好比一个字符串链表,
它可以任意的动态在字符串中添加字符串,删除字符串,指定位置插入字符串,
使用它来操作字符串会更加灵活。
NSMutableString和NSString的区别:
NSMutableString是可变的,里面的文字内容可以随时更改
NSString是不可变的,里面的文字内容是不能进行修改的
可变和不可变是在字符串的内容和地址的前提下说的
NSMutableString可以使用NSString的所有方法
字符串追加方法:
//创建不可改变字符串
NSMutableString常用方法
NSArray的介绍和基本使用
NSArray是OC中的数组类,开发过程中尽量使用NSArray替代C语言中的数组
C语言中数组的弊端:
只能存放一种类型的数据(类型必须一致)
不能很方便的动态添加数组元素、不能很方便的动态删除数组元素(长度固定)
NSArray的使用注意:
只能存放任意的OC对象,并且是有序的
不能存储非OC对象,比如int\char\enum\struct
它是不可变的,一单初始化完毕后它里面的内容就永远是固定的,不能删除里面的元素,
也不能再往里面添加元素。
NSArray的创建方式
NSArray的类方法创建
+(instancetype)array;
+(instancetype)arrayWithObject:(id)anObject;
+(instancetype)arrayWithObject:(id)firstObj;...:
+(instancetype)arrayWithArray:(NSArray*)array;
+(id)arrayWithContentOfFile:(NSString *)path://读取一个xml文件。
+(id)arrayWithContentOfURL:(NSURL *)url://读取一个xml文件。
NSArray特点
一旦创建成功,内容不可改变
只能存放OC对象
NSArray与字符串
NSMutableArray介绍和使用
NSMutableArray是NSArray的子类,NSMutableArray是可变的,类似于NSMutableString
数组的使用
/
键值对集合的特点
key值不能重复:
如果重复了,也不会报错,如果重复了,最后添加的将不能报存到字典中
NSDictionary基本使用方法
字典的遍历:
第一步:获取所有的key
第二步:根据key获取value
NSDictionary简写及文件操作
获取元素:
以前
[dict objectForKey:@"name"];
现在
dict[@"name"];
文件操作参考上面
什么是框架
框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架,通俗点说,其实框架就是一个约束体,就像我们生活中的窗框架一样,只不过时窗框架里放玻璃,而Foundation框架里放类、方法、函数、文档。
NSString字符串比较
字符串比较函数
1、比较字符串大小
字符串根据排列排序 的不同,会有大小的差异,oc中比较字符串大小的方法和C中的方法是
一样的,都是由ASCLL大小来确定大小的
compare方法就是比较字符串大小的方法,其返回结果有三种
实例:
NSString *str1=@"abc"; NSString *str=@"bcd"; //取出每个字符的ASCII,比较ASCII值大小 //compare方法比较大小 //comprare默认的区分大小写的 //compare这个函数,不能增加条件 //NSComparisonResult result=[stri compare:str2 options:NSCaseInsesitiveSearch];比较的时候,不区分大小写 NSComparisonResult result=[str1 compare:str2 ]; //不让区分大小写的需求: //NSComparisonResult result=[str1 compare:str2 options:NSCaseInsesitiveSearch]; //同时满足即不区分大小写又要比较字符串的字符个数 //NSComparisonResult result=[str1 compare:str2 options:NSCaseInsesitiveSearch | NSNumericSearch]; //常见未枚举方法有三个 //NSCaseInsensitiveSearch :不区分大小写字符 //NSLiteralSearch: 进行完全比较,区分大小写(默认) //NSNumericSearch:比较字符串的字符个数,而不是字符值 //当需求比较多的时候可以使用“|”来同时满足多个条件 switch(result){ case NSOrderedAscending: NSLog(@"str1<str2 升序"); break; case NSOrderedDesending: NSLog(@"str1>str2 降序"); break; case NSOrderedSame: NSLog(@"str1==str2 "); break; default: break; }
"=="不能够判断字符串是否相等 如:
if(str1==str3)//这里其实比较的是地址
判断字符串内容真正是否相等,使用的是isEqualToString:
注意:这个方法是区分大小写的
NSString前后缀检查
判断字符串前缀
[str hasPrefix:@"要检测内容"];其中hasPrefix的返回值是BOOL类型的
判断字符串的后缀
[str hasSuffix:@"待检测后缀"] ;返回值也是BOOL类型的
字符串查找
查找某个字符串在另外一个字符串中首次出现的位置
原字符串 rangOfString 子字符串
NSRange range=[str1 rangeOfString:str2];//NSRange类的返回值是长整形
NSLog(@"%lu,%lu",range.location,range.length);//location表示下标,lenght表示长度
NSRange的使用
NSRange是Foundation框架中比较常用的结构体,
NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
NSRange有两个成员
NSRange location表示下标,NSRange lenght表示长度
NSRange创建的几种方式
NSRange range;//range 结构体变量 NSRange *r; //r结构体指针 //range变量的初始化方式 //通过结构体变量访问成员 range. location=3 range.length=2;
结构体变量整体赋值
</pre><pre name="code" class="objc"><pre name="code" class="objc">range=(NSRange){5,3};//强制类型转化 NSRange r2={4,5};//最简单 NSRange r3={.location=3};//只是给结构体变量中的. location成员赋值 OC中新增的 //NSMakeRange 函数的作用给NSRange结构体变量赋值 NSRange r4=NSMakeRange(3,3);//最好理解
查看结构体变量的值
NSLog(@"%lu,%lu",range.location,range.length); //可以把结构体变量转化为NSString类型 NSLog(@"%@",NSStringFromRange(range));
字符串的截取和替换
1截取
//0123456789
NSString str =@"jaeuhnakjd";
1、从xx位置开始,到最后结束(包含XX这个位置)
[NSString *str1=str substeingFromIndex:5] NSLog(@"str1=%@",str1);
2、从开始位置,到XX位置结束(不包含XX这个位置)
NSString *str2=[str substringToIndex:5]; NSLog(@"str2=%@",str2);
截取一个范围(包含XX这个位置)
NSRange r1={3,4}; NSString *str3=[str substringWithRange:r1]; NSLogg(@"str3=%@",str3);
字符串的替换
替换函数:stringByReplacingOccurrencesOfString:@"原字符串内容"withString:@"替换内容"
NSString的其它用法
字符串和字符串
函数:
intValue
floatValue
...Value
NSString *str=@"1";
NSString *str2=@"3.14";
int a=10;
int b=[str intValue];
a=a+b
NSLog(@"a=%d",a);
//OC的字符串和C的字符串互相转换问题
//char * NSString
//C----->OC对象
char *s="zhangsanfeng";
printf("%s\n",s);
//思路:创建一个OC的字符串对象,用C语言的字符串创建
NSString *str=[NSString stringWithUTF8String:s];
//OC---->C的字符串
NSString *str2=@"zbz";
char *s1=[str2 UTF8String];
printf("s1=%s\n",s1);
NSMutableString类继承NSString类,NSMutableString类好比一个字符串链表,
它可以任意的动态在字符串中添加字符串,删除字符串,指定位置插入字符串,
使用它来操作字符串会更加灵活。
NSMutableString和NSString的区别:
NSMutableString是可变的,里面的文字内容可以随时更改
NSString是不可变的,里面的文字内容是不能进行修改的
可变和不可变是在字符串的内容和地址的前提下说的
NSMutableString可以使用NSString的所有方法
字符串追加方法:
//创建不可改变字符串
NSString *str=@"jack"; str =@"Rose"; //创建可变字符串 NSMutableString *str1=[NSMutableString stringWithFormat:@"jack"]; [str1 appendString:@"&Rose"]; NSLog(@"ste1=%@",str1);
NSMutableString常用方法
//定义一个空的可以改变的字符串 NSMutableString *ste=[NSMutableString string]; //appendFormat格式化的添加字符串 [str appendFormat:@"http://www.baidu.com/%d",100] //结果:http://www.baidu.com/100 //删除字符串的一部分内容 [str deleteCharactersInRange:NSMakeRange(3,4)]; //结果:httwww.baidu.com/100 //插入字符串 [str intsertString:@"p://" atIndex:3]; 结果:http://www.baidu.com/100 //替换字符串的一部分内容 [str replaceCharactersInRange:NSMakeRange(11,5)withString:@"itcast"]; 结果:http://www.itcast.com/100
NSArray的介绍和基本使用
NSArray是OC中的数组类,开发过程中尽量使用NSArray替代C语言中的数组
C语言中数组的弊端:
只能存放一种类型的数据(类型必须一致)
不能很方便的动态添加数组元素、不能很方便的动态删除数组元素(长度固定)
NSArray的使用注意:
只能存放任意的OC对象,并且是有序的
不能存储非OC对象,比如int\char\enum\struct
它是不可变的,一单初始化完毕后它里面的内容就永远是固定的,不能删除里面的元素,
也不能再往里面添加元素。
NSArray的创建方式
NSArray的类方法创建
+(instancetype)array;
+(instancetype)arrayWithObject:(id)anObject;
+(instancetype)arrayWithObject:(id)firstObj;...:
+(instancetype)arrayWithArray:(NSArray*)array;
+(id)arrayWithContentOfFile:(NSString *)path://读取一个xml文件。
+(id)arrayWithContentOfURL:(NSURL *)url://读取一个xml文件。
NSArray特点
一旦创建成功,内容不可改变
只能存放OC对象
//1、创建一个空数组 NSArray *arr1=[NSArray array]; //2、创建数组,只有一个元素 NSArray *arr2=[NSArray arrayWithObject:@"1"]; //3、创建数组,有多个元素(最常见,最常用) NSArray *arr3=[NSArray arrayWithObject:@"one",@"two",@1,nil]; //4、调用对象方法,创建数组 //nil表示数组赋值结束 NSArray *arr4=[[NSArray alloc] initWithObject:@"three",@"four",nil]; //5、用一个已经存在的数组可以创建另外一个数组 NSArray *arr5=[NSArray arrWithArray:arr3]; NSLog(@"%@",arr5); //注意:不能存放nil,如果非要存进去那么: NSArray *arr3=[NSArray arrayWithObject:@"one",@"two",[NSNull null],@1,nil]; //结果:arr3=(one,two,"null"1) //NSArray常见用法: NSArray *arr3=[NSArray arrayWithObject:@"one",@"two",@1,nil]; //1、获取数组的长度 count获取数组元素的个数 NSLog(@"%ld",arr3.count); //根据下标,获取下标对应的对象 NSLog(@"%@",[arr3 objectAtIndex:3]); //返回元素下标 NSUINteger loc=[arr3 indexOfObject:@"three"]; NSLog(@"%ld",loc); //数组中是否包含了某个元素 if([arr3 containObject:@"three"]){ NSLog(@"包含此元素"); }else{ NSLog(@"不包含此元素"); } //containObject返回值是BOOL类型 //用简化的方式,来定义和访问数组元素 //1、用简化的方式,定义数组 //格式:@[数组元素] NSArray *arr=@[@"1",@"2",@"3",@4,@"one"]; //用简化的方式访问数组元素 str=arr[1];//C语言形式的数组元素访问 //NSArray的遍历方法 //对数组进行遍历 //1、普通的方式,通过下标访问 for(int i=0;i<arr.count;i++){ NSLog(@"-->%@",arr[i]); } //2、快速枚举法for循环的增强形式 for(NSString *str in arr){ NSLog(@"-->%@",str); } //3、使用block的方式进行访问 //NSArray读写文件 //把NSArray的内容写入到文件中 NSArray *array=[NSArray arrayWithObjects:@"asd",@"sdf",@"zbz",nil]; //把NSArray 中的内容写入到文件中 //arr.plist一种特殊的文件格式 BOOL isWrite=[arr writeToFile:@"文件路径"atomically:YES] if(isWrite){ NSLog(@"写入成功"); } //从文件中,读取一个数组信息 NSArray *readArr=[NSArray arrayWithContentaOfFile@"路径"]; NSLog(@"readArr=%@",readArr);
NSArray与字符串
//把数组元素链接成字符串 //定义一个数组 NSArray *array=[@1,@2,@3,@4]; //需求:把数组中的元素用“_”连接起来 //[数组 componenteJoinedByString:@"分隔符"]; //2、给一个字符串,分割成一个数组 NSString *str2=@"400-80-12580"; NSArray *arr2=[str2 componentsSeparatedByString:@"-"]; NSLog(@"%@",arr2[1]);
NSMutableArray介绍和使用
NSMutableArray是NSArray的子类,NSMutableArray是可变的,类似于NSMutableString
数组的使用
/
/创建数组 NSMutableArray *arr=[NSMutableArray array]; //创建的时候初始化一个元素 NSMutableArray *arr2=[NSMutableArray arrWithObject:@"one"]; //创建数组的时候,初始化多个元素 NSMutableArray *arr2=[NSMutableArray arrWithObject:@"one",@"two",nil]; //创建一个数组,并且指定长度 NSMutableArray *arr2=[NSMutableArray arrWithCapacity:5]; NSLog(@"@",arr); //添加元素 [arr addObject:@"fengjie"]; //插入元素到指定位置 [arr1 insertObject:@"zbz" atIndex:0]; //删除元素 //根据对象内容删除 [arr1 removeObject:@"zbz"]; //根据位置删除 [arr1 removeObjectAtIndex:1]//1表示下标 //全部删除 [arr1 removeAllObjects]; 4、修改元素 [arr3 replaceObjectAtIndex:1 withObject:@"four"]; //更加简单的方法 arr3[1]=@"five"; NSLog(@"%d",arr3); 5、//查找元素 BOOL isSearch=[arr3 containsObject:@"one"]; 6、//交换元素 //1 2 3 4 5 //5 2 3 4 1 NSMutableArray *arr5=[NSMutableArray arrayWithObject:@1,@2,@3,@4,nil]; //可以交换数组元素 [arr5 exchangeObjectAtIndex:0 withObjectAtIndex:4];//第0个位置和第五个位置交换 NSDictionary的介绍 //创建空字典 NSDictionary *dict1=[ NSDictionary dictionary] //创建只有一组键值对的字典 NSDictionary *dict2=[ NSDictionary dictionaryWithObject:@"张三" forkey:@"zs"]; //创建多组键值对的字典 //value值,key值 NSDictionary *dict3=[ NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"k1", @"value2",@"k2",nil]; //注意:字典的key值和value值,都必须是对象 //快速创建一个字典 @{,,key值:value值,,,}; NSDictionary *dict4=@{@"zs":@"zhangsanf",@"ls":@"lisi"}; NSLog(@"%@",dict4);//以%@格式打印字典,控制台输出一个{} 获取字典长度 NSLog(@"%lu",dict4.count); 根据key值取出value值 // zs zhaosi NSString *str = [dict4 objectForKey:@"zs"]; NSLog(@"str=%@",str); //结果:str=zhaosi
键值对集合的特点
key值不能重复:
如果重复了,也不会报错,如果重复了,最后添加的将不能报存到字典中
NSDictionary基本使用方法
字典的遍历:
第一步:获取所有的key
第二步:根据key获取value
for(NSString *key in dict4){ NSLog(@"key=%@,value=%@",key,[dict objectForKey:key]); } key value stop dict4 enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){ NSLog(@"%@-->%@",key,obj); }
NSDictionary简写及文件操作
获取元素:
以前
[dict objectForKey:@"name"];
现在
dict[@"name"];
文件操作参考上面
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- Objective-C的内省(Introspection)用法小结
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- 解析iOS开发中的FirstResponder第一响应对象