------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一 简介
OC中一个框架就是一个软件包,他包含有很多的类,其中基础框架,也就是foundation框架是为所有程序开发提供的基础框架,其中的类包括:字符串,数组,字典,集合等。所有的基础框架上的类都同用户界面无关,为了使用基础框架,需要在程序中导入头文件:#import <Foundation/Foundation.h>
二 NSString 字符串的使用
1.NSString对象,一旦创建,就不可以进行再改变,如需要一个可以更改的字符串对象,需要创建NSString的可变子类NSMutableString实例。
2.字符串的创建
2.1创建一个字符串常量: NSString *string=@”this is NSString”;
2.2创建一个空字符串:
NSString *string=[[NSString alloc]init];
NSString *string=[NSString string];
3.快速创建字符串
NSString *string=[[NSStringalloc]initWithString:@“字符串”];
NSString *string=[NSStringstringWithString:@”字符串”];
4.创建格式字符串 initWithFormat , stringWithFormat 方法
5.小注意
常量没有引用计数,常量创建的字符串无需要管理内存
6.比较两个字符串
6.1 “==”表示比较两个字符串的地址是否相同;
eg: if(string1== string2){ //code...
}
6.2 ”isEqualToString”表示比较两个字符串的值是否相同;
Eg : if(string1isEqualToString:string2){ //code....
}
6.3 通过类方法创建字符串(不需要管理内存的)
NSString *string=[NSString stringWithCString:“abc“ encoding:
NSUTF8StringEncoding];
6.4通过实例方法创建字符串(需要手动管理内存)
NSString *string=[[NSStringalloc]initWithFormat:@””];
6.5 通过追加的方式创建字符串 stringByAppendingString 方法
6.6 NSComparisonResult re=[string1 compare:string2]; //按字母排序进行比较
7截取字符串
7.1通过类方法:substringFormIndex:下标 //从指定的位置截取到末尾
7.2substringToIndex:下标 //从开始位置截取到指定的下标位置
7.3截取指定位置(NSRange (loation ,length))
Eg:NSRange rg={4,5}; //表示从4的位置开始,截取5个长度
等价于 NSRange rg=NSMakeRange{4,5};
//调用截取方法 [string1 substringWithRange: rg];
rangeofstring //得到字符串的位置
8.大小写之间的转换
8.1 大---> 小 lowercaseString方法
8.2小----->大 uppercaseString方法
9.可变字符串NSMutableString
9.1.如何创建一个可变字符串
NSMutableString *str=[[NSMutableString alloc]initWithCapacity:0];
9.2.重新设置 setString
9.3 根据下标插入字符串 insetString:@" " atIndex:下标值
9.4 删除指定位置的字符串
NSRangege=NSMakeRange(4,5);
[string1deleteCharactersInRange:ge];
三 数组(NSArray)
1.通过类方法定义数组(无需管理内存),nil表示数组的结束
arrayWithObject:......,nil ;
2.通过初始化方法定义数组
initWithArray (通过数组创建数组)
initWithObject (通过对象创建数组)
3.如何操作数组
3.1根据下标获取数组的元素
objectAtIndex:下标
3.2通过元素获取对应的下标
indexOfObjects:@"字符",返回NSInteger
3.3获取最后一个元素:lastObject
3.4获取数组的长度:count
4.循环操作数组
4.1通过枚举
NSEnumerator *enu=[arry1objectEnumerator];
id obj;
While((obj==[enu nextObject]))
{
//code.......
}
4.2循环 for
4.3 for in
for(NSString *str in array)
{
//code.....
}
4.4反转枚举 reverseObjectEnumerator
4.5排序
sortedArrayUsingSelector:@"selector(compare)"
5.可变数组(NSMutableArray)
5.1添加元素(末尾) addObject:
5.2插入元素
[array1 insertObject:@" "atIndex:下标];
5.3移除元素
根据下标移除元素:removeObjectIndex:
移除最后一个元素:removeLastObject:
5.4替换元素(根据下标替换)
replaceObjectAtIndex:下标 withObject:@"替换的字符串";
通过下标交换:exchangeObjectAtIndex: j withObjectAtIndex:j+1;
5.5查找
containsObject:@"要查找的字符";
四 字典(NSDictionary)
1.如何创建字典?
NSMutableDictionary*dictionary=[NSMutableDictionary dictionaryWithCapacity: 个数];
dictionaryWithObjectsAndKey 将元素添加到字典中
2.如何操作字典?
2.1通过键得值 objectForKey
2.2 设置字典(设置没有的键是添加,反之修改)
setObject:@" " forKey:@" "
2.3移除指定键值数据 removeObjectForKey
移除所有的数据 removeAllObjects
2.4 得到字典的个数 count
2.5 循环字典
2.5.1 通过枚举 keyEnumerator /ObjectEnumertor
2.5.2 通过数组 NSArray *array=[ dic allkeys]; /allValues
根据键获取值:objecForKey
五 NSData 字节类
1.创建 path
2.将文件读入data对象 initWithContentsofFile:path;
3.data对象转换为字符串 initWithData:data ;
4.将字符串转换为data [stringdataUsingEncoding: ];