一、NSString字符串的使用
1.基本用法
NSString对象,一旦创建,就不可以进行再改变,如需要一个可以更改的字符串对象,需要创建NSString的可变子类NSMutableString实例。
2.字符串的创建
2.1创建一个字符串常量: NSString *string=@”hello world”;
2.2创建一个空字符串:
NSString *string=[[NSString alloc]init];
NSString *string=[NSString string];
3.快速创建字符串
NSString *string=[[NSString alloc]initWithString:@“字符串”];
NSString *string=[NSString stringWithString:@”字符串”];
4.创建格式字符串
initWithFormat , stringWithFormat 方法
5.小注意
常量没有引用计数,常量创建的字符串无需要管理内存
6.比较两个字符串
6.1 “==”表示比较两个字符串的地址是否相同;
eg: if(string1== string2){ //code...
}
6.2 ”isEqualToString”表示比较两个字符串的值是否相同;
Eg : if(string1 isEqualToString:string2){ //code....
}
6.3 通过类方法创建字符串(不需要管理内存的)
NSString *string=[NSString stringWithCString:“abc“ encoding:
NSUTF8StringEncoding];
6.4通过实例方法创建字符串(需要手动管理内存)
NSString *string=[[NSString alloc]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.判断字符串
9.1判断字符串的开头是否与指定的字符串相同 hasPrefix方法
9.2判断字符串结尾是否与指定字符串相同 hasSuffix 方法
9.3忽略大小写进行比较 caseInsensitiveCompare
if([str1 caseInsensitiveCompare:str2 ]==NSOrferedsame){ //
}
10.分割字符串
10.1通过指定的字符串进行分割 componentsSeparatedByString
NSArray *array=[string1 componentsSeparateByString:@”z指定的字符串”];
10.2通过指定的字符集进行分割(空格、换行)
NSArray *array=[string1 componentsSeparatedByCharactersInset: NSCharacterSetEhitespaceAndNewlineCharacterSet]];
10.3通过指定的字符将数组组合成字符串
NSString *str=[array componentsJoinedByString :@”**”;
11.替换字符串
11.1替换指点字符串
NSString *str=[str1 StringByReplacingOccurrenxesOfString:@"要替换的字符串" withstring :@"替换后的字符串"];
11.2替换指点位置的字符串
NSRange myRange=[str rangeOfString:@"字符串"];
if(myRange.laction==NSNotFound){
//code.....
} else
{
NSString *str=[String1 StringByReplacingcharactersInRange:myRange withstring:@"替换字符串"];
}
12.数据转换
NSString *str=@"100";
int intNum=[str intValue];
Float floatNum=[str floatValue];
13.可变字符串NSMutableString
13.1.如何创建一个可变字符串
NSMutableString *str=[[NSMutableString alloc]initWithCapacity:0];
13.2.重新设置 setString
13.3 根据下标插入字符串 insetString:@" " atIndex:下标值
13.4 删除指定位置的字符串
NSRange ge=NSMakeRange(4,5);
[string1 deleteCharactersInRange: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=[arry1 objectEnumerator];
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
四、 NSDate、NSDateFomatter
1.NSDate 日期
NSDate *date=[NSDate date]; //得到的是美国时间
通过dateByAddingTimeInterval:8*60*60; 得到北京时间
timeIntervalsinceNow //得到两个日期的时间间隔(秒)
[date1 earlierDate:date2] //比较两个日期 返回较早的日期
[date2 lateDate:date2] //返回较晚的日期
2.NSDateFomatter 日期格式器
//创建一个日期格式器
NSDateFomatter *fmt=[[NSDateFormatter alloc ]init];
//设置时间格式
[fmt setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//设置日期的样式
[fmt setDateStryle:NSDateFormattermediumstyle];
//设置时间的样式
[fmt setTimeStyle:NSDateFormattershortstyle];
//将日期对象转换为字符串
NSString *dt=[fmt StringFromDate:date ];
//将字符串转换为日期对象 dateFromString
五、NSNumber
OC的数字类型(对C数据类型的一个封装)
1.将C语言--->OC
NSNumber ×intNum=[NSNumber numberWithInt:100];
2.将OC--->C
int num=[intNum intValue];
将C语言的int 型存放到数组中的话,运行时将出错的,内存错误,找不到C语言的内存。
3.判断一个字符串是否是由数字组成
NSString *str=@"10030";
//用于存字符串扫描指点字符
NSScanner *scan=[NSScanner scannerWithString:str1];
int val;
BOOL fg=[scan scanInt:&val ]&&[scann isAtEnd];
六、NSNull 空/nil
NSNull *nl=[NSNull null ];
在数组中要赋空值时,运用NSNull对象,而nil表示结束。
NULL和nil就是0,nil是一个通用对象值,而NUll是一个通用指针。
七、NSData 字节类
1.创建 path
2.将文件读入data对象 initWithContentsofFile:path;
3.data对象转换为字符串 initWithData:data ;
4.将字符串转换为data [string dataUsingEncoding: ];
八、NSTimer 定时器
NSTimer *timer=[NSTimer scheduledTimeWithTimeInterval: 1.0 target:self selector:@selector(方法) userInfo:nil repeats:YES];
//参数的说明:TimeInterval 时间间隔的秒数
target:操作的目标
selector:定时器执行的操作
userInfo:参数
repeats:是否重复
//停止 [ timer invalidate];
//销毁定时器