Foundation框架
Foundation框架是Cocoa编程, iOS编程的基础框架,包括:字符串,集合,日期,时间等基础类.
一. 字符串类
1. 字符串:
C语言中字符串是char(ASCII)字符组成.
OC中,字符串是由unichar(Unicode)字符组成.
NSString, 不可变字符串,即:创建以后,内容和长度不能改变
NSMutableString,可变字符串,即:创建以后,内容还可以修改
创建新的字符串,可以使用实例方法和便利构造器
2. NSString常用方法
1).不同类型转为NSString* 类型
NSStrng *str = [NSString stringWithFormat:@"adfjljk%d" , 2]; NSLog(@"%@", str);
2).子串 - sub
NSString *strVal = @"qingchuner"; //从index为2的位置往后输出 NSString *str = [strVal substringFromIndex:2]; //输出到index为6 NSString *str1 = [strVal substringToIndex:6]; //区间输出 NSString *str2 = [strVal substringWithRange:NSMakeRange(2, 3)]; NSLog(@"%@", str2);
3).拼接 - append
NSString *strVal = @"qingchuner"; //格式化,可以拼接多个字符串,多个其他类型的 NSString *str = [strVal stringByAppendingFormat:@"%@%@%@%@%@",@"esdfr", @"dsfdf", @"saldjf", @"sdf", @"DS"]; NSLog(@"%@", str); //追加字符串 NSString *str = [strVal stringByAppendingString:@"sdsfk"];
4). 替换 replace
NSString *strVal = @"qingchuner"; //将所有符合指定字符串替换,替换为所指定的字符串 NSString *str = [strVal stringByReplacingOccurrencesOfString:@"ing" withString:@"aaa"]; NSLog(@"%@", str); NSString *str1 = [strVal stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"SSjjl"]; NSLog(@"%@", str2);
5)判断比较
判断是否相等-使用频率最高 BOOLret = [strVal isEqualToSting:@"qingchuning"]; NSLog(@"%d", ret); //判断大小 NSComparisonResult ret1 = [strVal compare:@"aaa"]; NSLog(@"%ld", ret1); //实用方法 BOOL ret3 = [strVal hasPrefix:@"qi"]; NSLog(@"%d", ret3); BOOL ret4 = [strVal hasSuffix:@"g"]; NSLog(@"%d", ret4);
6).转换
//7.转换 //字符串转换为其他类型 NSString *strVal = @"2.0"; //intValue doubleValue floatValue integerValue boolValue等等 //注意:其他类型转换为字符串用...format方法 float ret = [strVal floatValue]; NSLog(@"%f", ret); ----------------------------------------------- //大小写转换 NSString *strVal = @"qingChuning"; //转小写 NSString *str1 = [strVal lowercaseString]; NSLog(@"%@", str1); //转大写 NSString *str2 = [strVal uppercaseString]; NSLog(@"%@", str2); //首字母转大写,其他的转为小写 NSString *str3 = [strVal capitalizedString]; NSLog(@"%@", str3);
二. 数组
1.不可变数组
//不可变数组 //1. 创建&初始化 NSArray *arr1 = [[NSArray alloc] initWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil]; NSArray *arr2 = [NSArray arrayWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil]; //复制一份arr1给arr3 NSArray *arr3 = [NSArray arrayWithArray:arr1]; //2.数组个数 NSLog(@"%ld", arr1.count); //3.遍历 for (int i = 0; i < arr1.count; i ++) { NSLog(@"%@", arr1[i]); //通过下标访问数组 NSLog(@"%@", [arr1 objectAtIndex:i]); } //通过对象值获取下标(获取下标) NSLog(@"%ld", [arr1 indexOfObject:@"王宁"]);
2.可变数组
//可变数组 //1. 创建&初始化 NSMutableArray *arrm1 = [[NSMutableArray alloc] initWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil]; // NSMutableArray *arrm2 = [NSMutableArray arrayWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil]; //常用遍历构造器方法 NSMutableArray *arrm2 = [NSMutableArray array]; // NSLog(@"%ld", [arrm2 indexOfObject:@"王宁"]); //2.添加 [arrm1 addObject:@"高帅"]; //数组中元素可以是不同类型, 但都得是对象类型. [arrm1 addObject:arrm2]; //3. 插入 [arrm1 insertObject:@"宁宁" atIndex:2]; //4.删除 [arrm2 removeObject:@"魏冬冬"]; //删除最后一个元素 [arrm2 removeLastObject]; //5.替换 //将替换指定下标处的元素值,替换为指定值 [arrm1 replaceObjectAtIndex:3 withObject:@"wangningn"]; //6. 交换 //交换两个指定下标元素 [arrm1 exchangeObjectAtIndex:3 withObjectAtIndex:5];
三.值对象
//值对象 int a = 1; //int转对象类型 NSNumber *val = [NSNumber numberWithInt:a]; NSLog(@"%@", val); //对象转为int NSLog(@"%d",[val intValue]); NSRange range = {1, 2}; //结构体/指针类型转对象类型 NSValue *val = [NSValue valueWithRange:range]; NSLog(@"%@", val); //对象类型转结构体/指针类型 NSRange ret = [val rangeValue];