黑马程序员---OC基础---Foundation(上)
2015-08-07 13:44
344 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.Foundation框架发展
——乔布斯在1976年创立苹果公司
——乔布斯于1985年离开苹果公司,创立NeXT公司,开发了Next Step操作系统
——在开发Next Step操作系统过程中产生了Foundation框架
——1997年苹果收购NeXT公司,乔布斯重返苹果公司(Mac系统是基于Next
Step操作系统的)
——2007年,苹果发布了iOS系统
2.Foundation框架的作用
Foundation框架是Mac\iOS中其他框架的基础,包含了很多开发中常用的数据类型,如结构体、枚举、类等等,在使用前必须先包含其主文件
1.创建一个NSString类对象
1)全部字符转换为大写
一个字符串中若有多个单词,首字母都大写,其他字母小写
实为逐个字符进行ASCII码比较,返回NSComparisonResult作为比较结果
1)NSOrderedAscending——表示str1小于str2
2)NSOrderedDescending——表示str1大于str2
3)NSOrderedSame——str1等于str2
——补充:
1)不区分大小写比较
1)前缀检查
NSRange是Foundation框架中的一个结构体,表示一个事物的范围,通常是字符串里的某个字符串范围或者数组中的元素范围
1)初始化
1)截取
——从指定位置到字符串尾部
1.创建NSMutableString字符串
2.NSMutableString和NSString的区别
1)NSString是不可变的,其内容不能被修改
2)NSMutableString可变,其内容可以随时修改
正是由于NSMutableString是可变的这一特性,可以实现NSString不能做到的事情
1)拼接字符串到末尾
1.创建NSArray类对象
1)获取集合元素个数
1)普通遍历
1)将NSArray元素连接成字符串
1.创建
1)添加一个元素
1)删除最后一个元素
1)用元素替换指定位置元素
一、Foundation简介
框架是由许多类、方法、函数、文档按一定的逻辑组织起来的集合,使程序开发更容易。Mac OS X系统下大约有80个框架,为所有iOS和MacOS开发奠定了基础,我们称之为Foundation框架1.Foundation框架发展
——乔布斯在1976年创立苹果公司
——乔布斯于1985年离开苹果公司,创立NeXT公司,开发了Next Step操作系统
——在开发Next Step操作系统过程中产生了Foundation框架
——1997年苹果收购NeXT公司,乔布斯重返苹果公司(Mac系统是基于Next
Step操作系统的)
——2007年,苹果发布了iOS系统
2.Foundation框架的作用
Foundation框架是Mac\iOS中其他框架的基础,包含了很多开发中常用的数据类型,如结构体、枚举、类等等,在使用前必须先包含其主文件
#import <Foundation/Foundation.h>
二、Foundation框架中的类
1.1NSString
一个NSString对象就是一个字符串,一般称NSString类为字符串类1.创建一个NSString类对象
NSString *str = @"欢迎学习";2.格式化
NSString *str = [NSString stringWithFormat:@"我的年龄是%d",25]; NSString *str = [[NSString alloc] initWithFormat:@"我的年龄是%d",25];3.NSString的大小写处理
1)全部字符转换为大写
NSString *str = @"hello world"; str = [str uppercaseString];2)全部字符转换为小写
NSString *str = @"HELLO WORLD"; str = [str lowercaseString];3)首字母大写其他字母小写
一个字符串中若有多个单词,首字母都大写,其他字母小写
NSString *str = @"hello world"; str = [str capitalizedString];4.字符串大小比较
实为逐个字符进行ASCII码比较,返回NSComparisonResult作为比较结果
NSComparisonResult result = [str1 compare:str2];返回结果有3种:
1)NSOrderedAscending——表示str1小于str2
2)NSOrderedDescending——表示str1大于str2
3)NSOrderedSame——str1等于str2
——补充:
1)不区分大小写比较
NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch];2)比较字符串个数多少
NSComparisonResult result = [str1 compare:str2 options:NSNumericSearch];5.NSString前后缀检查
1)前缀检查
BOOL isYes = [str1 hasPrefix:str2]; //检查字符串str1是否以字符串str2开头2)后缀检查
BOOL isYes = [str1 haSuffix:str2]; //检查字符串str1是否以字符串str2结束6.NSRange的使用
NSRange是Foundation框架中的一个结构体,表示一个事物的范围,通常是字符串里的某个字符串范围或者数组中的元素范围
1)初始化
NSRange range; range.location = 2; range.length = 3; //这里的range表示一个从第二个位置开始长度为3的范围2)检查字符串包含内容
NSRange range =[ str1 rangeOfString:str2]; //检查字符串str1是否包含str2并返回Range范围7.NSString的截取和替换
1)截取
——从指定位置到字符串尾部
NSStrig *str1 = [str2 substringFromIndex:3]; //从字符串str2中第三个字符开始,截取剩余字符串到str1中——从开头到指定位置
NSStrig *str1 = [str2 substringToIndex:3]; //从字符串str2中第一个字符开始,截取到第3个字符到str1中——截取中间一段
Range range = {3,4}; NSStrig *str1 = [str2 substringWithRange:range]; //从字符串str2中第3个字符开始,截取连续4个字符到str1中2)替换
NSString *str = [str1 stringByReplacingOccurrencesOfString:str1 withString:str2]; //将str字符串中的str1字符串替换为字符串str2——补充:获取字符串中某个字符
char ch = [str characterAtIndex:3]; //获取字符串str中的第三个字符
1.2NSMutableString
NSMutableString是NSString的子类1.创建NSMutableString字符串
NSMutableString *str = [NSMutableString stringWithString:@"hello"];
2.NSMutableString和NSString的区别
1)NSString是不可变的,其内容不能被修改
2)NSMutableString可变,其内容可以随时修改
NSString *str = @"ab"; str = @"cd"; NSLog(@"%@",str); //这里打印结果是cd,但是前面的字符串对象ab依然存在,只是指针str指向了后者对象3.NSMutableString常用方法
正是由于NSMutableString是可变的这一特性,可以实现NSString不能做到的事情
1)拼接字符串到末尾
NSMutableString *str1 = [NSMutableString stringWithString:@"hello"]; NSMutableString *str2 = [NSMutableString stringWithString:@"world"]; [str1 appendString:str2]; //将字符串str2拼接到字符串str1后面2)拼接一段格式化字符串到后面
[str1 appendFormat:@"我的年龄是%d",25];3)删除字符串中范围为range的字符串
Range range = {2,3}; [str1 deleteCharactersInRange:range]; //删除字符串str1中从第二个字符开始的3个字符4)在字符串中间插入字符串
[str1 insertString:str2 atIndex:4]; //在字符串str1中第4个字符后面插入字符串str25)替换某一段字符串
Range range = {3,4}; [str1 replaceCharactersInRange:range withString:str2]; //将字符串str1中第三个开始后面的4个字符替换为str2字符串
2.1NSArray
NSArray是OC中的数组类,此类对象存放的是任意OC对象(输出是按字符串类方式输出),且可以是不同类型,它是不可变的。而C语言中的数组必须存放同一类型的数据1.创建NSArray类对象
NSArray *array = [NSArray arrayWithObjects:@"one",@"two",nil]; //以前的创建方法 NSArray *array = @[@"one",@"two"]; //现在的创建方法2.常用方法
1)获取集合元素个数
NSUInteger a = [array count];2)获取指定位置元素
NSString *str = [array objectAtIndex:1]; //获取集合第2个元素(以前的方法) NSString *str = array[1]; //现在的获取方法3)判断有无包含某个对象
BOOL isYes = [array containsObject:@"one"];4)获取最后一个元素
id object = [array lastObject];5)获取第一个元素
id object = [array firstObject];6)查找某元素在集合中的位置
NSUInteger index = [array indexOfObject:@"two"];3.NSArray的遍历
1)普通遍历
for (int i = 0; i<array.count; i++) { NSLog(@"%@",array[i]); //遍历打印集合元素 }2)快速遍历
for (id obj in array) { NSLog(@"%@",obj); }3)Block遍历
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%@ %lu",obj,idx); //打印元素和对应下标 }];4.NSArray和NSString
1)将NSArray元素连接成字符串
NSString *str = [array componentsJoinedByString:@"~"]; //用~符号将元素连接成一个字符串2)将字符串分割成NSArray元素
NSArray *a1 = [str componentsSeparatedByString:@"~"]; //用~符号将字符串分割成集合的元素
2.2NSMutableArray
NSMutableArray是NSArray的子类,前者是可变的,可以随时添加、更改、删除元素,后者是不可变的1.创建
NSMutableArray *array = [NSMutableArray array];2.添加元素
1)添加一个元素
[array addObject:@"Jack"];2)添加一个不可变数组的全部元素
[array addObjectsFromArray:array1];3)在指定位置插入一个元素
[array insertObject:@"love" atIndex:1]; //将”love“插入为第二个元素3.删除元素
1)删除最后一个元素
[array removeLastObject];2)删除所有元素
[array removeAllObjects];3)删除特定位置元素
[array removeObjectAtIndex:1]; //删除下标为1的元素4)删除特定元素
[array removeObject:@"one"]; //删除”one“这个元素4.替换元素
1)用元素替换指定位置元素
[array replaceObjectAtIndex:1 withObject:@"three"]; //用”three“替换下标为1的元素2)交换两个指定位置的元素
[array exchangeObjectAtIndex:0 withObjectAtIndex:1]; //交换下标为0和1的两个元素
相关文章推荐
- 【黑马程序员】Java学习笔记--IO流
- 黑马程序员————java基础之反射和正则
- 面试题整理:SQL(一)
- 黑马程序员——19,Collections工具类,Arrays工具类,高级for循环,可变参数,静态导入
- 【黑马程序员】Java笔记--内部类
- 程序员高手和菜鸟的区别是什么?
- 互联网公司2014前端笔试面试题:HTML/CSS篇
- 【转】软件测试面试- 购物车功能测试用例设计
- 100分程序员的8个习惯
- 黑马程序员——Java集合框架(三)之Map集合、Collections与Arrays工具类
- 黑马程序员——Java集合框架(二)之泛型
- 想成为程序员,学不会编程是自己笨吗?
- 程序员如何持续提升自己的开发技能
- 面试书推荐
- 学习的逻辑 2: 职业半山腰
- 【.Net码农】c#:使用using关键字自动释放资源未必一定就会有明显好处
- 数据类面试题
- 剑指offer_面试题55_字符流中第一个不重复的字符 *
- 程序员修炼之道系列 - 参与的开源项目和阅读的书籍
- 程序员编程生涯中会犯的7个错误