您的位置:首页 > 职场人生

黑马程序员---OC基础---Foundation(上)

2015-08-07 13:44 344 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、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个字符后面插入字符串str2
5)替换某一段字符串
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的两个元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: