1 框架是由许多类、函数、方法和文档按照一定的逻辑组织起来的集合。
2 NSString (字符串类)
一个NSString对象就代表一个字符串。是字符串的类。 类似java的String。
NSString 的创建
1) 创建字符串常量
NSString * str =@“abc”; //存在常量区。相同字符串只有一份。
2) 格式化方法创建
NSString*str =[NSString stringWithFormat:@”aaa”];//存在堆区。
NSURL
url :统一资源定位符(地址)。
格式 : ulr == 协议://主机域名/路径。
使用url读写字符串
NSRRL *url =[NSURL URLWithString:@“http://baidu.com/wenjian/aa.txt”];//服务器文件路径或者本地文件路径,还可以调用手机系统程序。
NSRRL *url =[NSURL fileURLWithPath:@“/usr/test/aa.txt”];//本地文件路径不需要加网络协议
使用url写文件
[str writeToURL: url automically:YES encoding:NSUTF8StringEncoding errer:nil];
automically:原子性,只能一个进程操作。
encoding:编码格式
errer:错误返回值。二级指针。
返回值类型:BOOL
使用url读文件
NSString *str=[NSString stringWithContentsofURL:urlencoding : NSUTF8StringEncoding err:nil];
字符串函数
功能 | 函数名 | 使用方法 | 返回值类型(返回值) | 备注 |
字符串比较 | compare | [str1 compare:str2 ] | NSComparisonResult(-1、0、1) | 有参数:比较规则 |
前缀检查 | hasPrefix | [str hasPrefix:@“http”] | BOOL |
|
后缀检查 | hasSuffix | [str hasSuffix:@“.jpg”] | BOOL |
|
字符串查找 | rangOfString | [str1 rangOfString:str2] | NSRange(结构体类型)or NSNotFound | length子字符串长度 location 首次出现位置 没有查找到返回一个 最大值 |
字符串截取 | substringFromIndex | [str substringFromIndex:3] | NSString | 包括开始位置 |
substringToIndex | [str substringToIndex:3] | NSString | 不包括结束位置 | |
字符串替换 | stringByRepleace…… | stringByRepleace……A with B | NSString | 用B替换A |
获取每个字符 | charcaterAtIndex | charcaterAtIndex:i | unichar |
|
获取字符长度 | length |
|
|
|
获取字符串的数值 | intValue | [str intValue] | int | 其他类型类推 |
NSRange
是一个结构体,表示事物的范围,通常是字符串里字符范围或者数组元素的范围
定义如下
typedef struct _NSRange{
NSUIntegerlocation; //范围起始位置
NSUIntegerlength; //范围长度
} NSRange
通过函数赋值
NSRangerange = NSMakeRange(2,3);
转换为字符串形式
NSString *str =[NSString NSStringFromRange:range];
将C中的字符串转换为OC的字符串
char*s = “xiaoming“;
NSString *str =[ NSString stringWithUTF8String:s];
将OC中的字符串转换为C的字符串
NSString *str = @”xiaoming“;
char *s = [str UTF8String];
3 NSMutableString(可变字符串类)
使用NSMutableString 可以对字符串进行增和删操作。修改字符串,不改变地址。
创建字符串
NSMutableString * str[NSMutableString stringWithFoemat:@”abc”] ;
追加字符串
[str appendString:@“def”]; //追加之后的地址不变 不需要变量接收。
删除字符串
[str deleteCharactersInRange:range];
插入字符串
[str insertString@“xxx”atIndex:int loc]; //将字符xxx串插入到loc位置
替换字符串
[str replaceCharactersInRange:rangewithString:@”xxx”]; //将range之间的字符串替换为xxx。
注意
NSString类型不能赋值给 NSMutableString类型的变量
NSMutableString *str =@”xxx”; //运行时报错 xxx是常量
string属性
str.string=@“”; // 用空覆盖之前的字符串。
4 NSArray(数组类)
存储的是OC中的对象,不能存储基本类型。
数组的创建是调用该类的类方法和对象方法。
创建数组
1)创建空数组
NSArray *array =[NSArray array];
2)创建数组有一个对象
NSArray *array =[NSArray arrayWithObject:@”1“];
3) 创建数组有多个对象
NSArray *array= [NSArray arrayWithObjects:@”1“,@”2“,nil];//常用写法
4) 用对象方法创建数组
NSarray*array= [[NSarray alloc ] initWith Objects:@”1“,@”2“,nil]];
5) 用数组创建数组
NSarray *arr=[NSArrayWithArray:array];
6)简化的方法定义数组
NSArray *arr=@[@”1”,@”one”];
查看数组
数组是对象,可以直接用 %@ 打印
常用方法
count :获取数组长度
objectAtIndex:index : 获取下标为index的对象
indexOfObject:对象 :获取对象的下标
containsObject:对象;是否包含对象
遍历数组
for(int i=0;i<count;I++){
NSLog(@“%@“,arr[I]);
}
for(NSSting *str ,in arr){
NSLog(@“%@“,str);
}
arr enumerateObjectsUsingBlock:…… //可以设置停止的条件
NSArray写文件
[ array writeToFile:@“路径“ automically:YES]; //返回值为BOOL
NSArray读文件
NSArray*arr=[NSArray arrayWithContentsOfFile:路径]
NSArray与字符串
把数组元素链接成字符串
NSArray *arr=@[@”ONE”,@”TWO”,@”THREE”];
NSString *str=[arrcomponentsJoinByString:分隔符];
分割字符串存到数组
NSString *str=@“400-800-12580“;//
NSArray *arr=[strcomponentsSepararedByString:分隔符];
6 NSMutableArray(可变数组类)
可变数组,长度可变,地址不变
创建数组
NSMutableArray * arr= [ NSMutableArray array];
创建数组的时候初始化元素 (类比Array)
创建的时候指定数组长度
[NSMutableArray arrayWithCapacity:长度];
添加元素
[arr addObject:@””];
插入元素
[arr insertObject:@”“ atIndex:location ];
删除元素
[arr removeObject:@“”];//根据元素删除
[arr removeObjectAtIndex:1];//根据下标删除
[arr removeAllObject]; //删除全部
修改元素
[ arr replaceObjectAtIndex:1withObject:对象];//根据下标替换
arr[3]=@””;//直接修改
查找元素
[arr containsObject:对象]; //0 没有 1 有
交换元素
[arr exchangeObjectAtIndex:int withObjectAtIndex:int];