一.类与对象
1.类:抽象的事物
对象:万事万物 皆对象
.h 与 .m 文件 各自实现什么功能
2.创建对象
公式:类名 *对象名 = [[类名 alloc]init];
分析:alloc 开辟一块自己的位置
init 创建一个对象
3.#import 导入系统框架 @class 也可以导入但是只可以声明一个对象 不能实例化一个对象
二.方法(函数)的使用
公式:
- (返回值类型)方法名:(参数类型)参数名 方法名:(参数 类型)参数名
调用:[对象名 方法名];
1.无参数 无返回值
例如:(1)记得先声明类
(2) 声明部分
- (void) dahuacatBehivior;
(3)实现部分
- (void) dahuacatBehivior
{
NSLog(@"一只叫大花的猫吃饭了");
}
(4)调用部分
Behivior *dahuacat=[[Behivior alloc]init];
[dahuacat dahuacatBehivior];
2.有参数 无返回值
(1)声明部分
- (void) daHuaCatZhuaLaoShu:(NSString *)message;
(2)实现部分
- (void) daHuaCatZhuaLaoShu:(NSString *)message
{
NSLog(@"%@",message);
}
(3)调用部分
Behivior *dahuacat=[[Behivior alloc]init];
[dahuacat daHuaCatZhuaLaoShu:@"一只叫大花的猫开始捉老鼠了"];
三.字符串的处理
1.初始化字符串
NSString*string = [NSString string];
NSString *string = [[NSStringalloc]init];
2.初始化并赋值
NSString *string = @"我是好学生。";
3.大小写转换
关键词:uppercaseString(转成大写)
lowercaseString (转成小写)
capitalizedString(首字母大写)
例如:
NSString* string = @"I am wanglong";
NSString *s1 = [string uppercaseString];
NSLog(@"%@",s1);//转成了大写
NSString *s2 = [string lowercaseString];
NSLog(@"%@",s2);//转成了小写
NSString * s3 = [string capitalizedString];
NSLog(@"%@",s3);//把首字母转成了大写其它不变
4.判断字符串是不是以什么开头或者结尾
关键词: hasPrefix hasSuffix
例如1:(判断开头是不是王)
NSString * string = @"王龙";
BOOL s = [string hasPrefix:@"王"];
if (s!=NO){
NSLog(@"是以王字开头的");
}
else{
NSLog(@"不是以王字开头的");
}
例如2:(判断结尾是不是龙)
NSString * string = @"王龙";
BOOL s1 = [string hasSuffix:@"龙"];(注意用bool变量进行接收)
if (s1!=NO){
NSLog(@"是以龙字结尾的");
}
else{
NSLog(@"不是以龙字结尾的");
}
5.有一个范围的关键字(用来确定一个范围)
NSRange:范围
范围包含起点位置和长度
(1)赋值方式一
NSRange range;
range.location=1;
range.length=3;
(2)赋值方式二
NSRange range = {1,3};
6.查看字符串是否包含什么字符
关键词:rangeOfString
NSNotFound 表示没找到
例如: NSString * string = @"王龙";
NSRange range = [string rangeOfString:@"王"]; //注意类型
if(range.location!=NSNotFound) { //注意条件的填写
NSLog(@"找到了王字");
}
else{
NSLog(@"没有找到王字");
}
7.判断两个字符串是否相同
关键词:isEqualToString
例如:(注意用bool变量进行接收)
NSString * string = @"王龙";
BOOL isEual = [string isEqualToString:@"王隆"];
if (isEual!=YES){
NSLog(@"这两个不相同");
}
else{
NSLog(@"这两个相同");
}
8.不可变字符串的拼接
拼接字符串的方法 会返回一个拼接好的新的字符串
stringByAppendingString:@""
stringByAppendingFormat:@""
例如:NSString * string = @"王龙";
NSString *new = [string stringByAppendingString:@"是个好人"];
NSLog(@"%@",new);
NSString *new1 = [string stringByAppendingFormat:@"66"];
NSLog(@"%@",new1);
9.截取字符串
关键词:
(1)substringToIndex:2 从开头截到第2个
(2)substringFromIndex:3 从第三个截取到最后
(3).substringWithRange:range 从第几个开始截到第几个
例如:
NSString * string = @"大宝是个不知道操心的人";
NSString *new1 = [string substringToIndex:2];
NSLog(@"%@",new1);//截取前两个
NSString *new2 = [string substringFromIndex:4];
NSLog(@"%@",new2);//截取从第四个开始到最后
NSRange range = {3,2};
NSString *new3 = [string substringWithRange:range];
NSLog(@"%@",new3);//截取一个范围的字符
10.格式化一个字符串(理解格式化的意思)
NSString *s=[NSString stringWithFormat:@""];
11.格式化的拼接
stringByAppendingFormat@""拼接多个格式化的字符串
例如:NSString * string = @"大宝是个不知道操心的人";
NSString * s1 = @"是的";
NSString *s2 = @"吗";
int s3 = 100;
NSString *new1 = [string stringByAppendingFormat:@"%@%@%d",s1,s2,s3];
NSLog(@"%@",new1);
12.数据转换
(1)把一个实型转换成字符串
例如:
float a = 100.0;
NSString *string = [NSString stringWithFormat:@"%f",a];
NSLog(@"%@",string);
(2)用类型+value进行转换
例如:
NSString *s = @"100";
NSLog(@"%@",s);
int s1 = [s intValue];
NSLog(@"%d",s1);
13.可变字符串(注意不可以直接赋值)
(1)初始化
#.NSMutableString *string=[NSMutableString string];
#. NSMutableString *s=[[NSMutableStringalloc]init];
(2)初始化并赋值
#:NSMutableString *string1=[NSMutableStringstringWithString:@""];
#.NSMutableString*string2=[NSMutableString stringWithFormat:@""];
(3)拼接
appendString
appendFormat拼接格式化的字符串(适用于拼接多个并且可以是不同类型的)
例如:
NSMutableString *string = [NSMutableString stringWithString:@"大宝是"];
[string appendString:@"个不操心的人"];
NSLog(@"%@",string);
int a=100;
NSString *s = @"确实";
[string appendFormat:@"%d%@",a,s];
NSLog(@"%@",string);
(4)增 删 改
NSMutableString*string = [NSMutableString stringWithString:@"大宝是"];
[stringinsertString:@"个不操心的人" atIndex:3];
NSLog(@"%@",string); 增加
NSRange range = {4,4};
[string deleteCharactersInRange:range];
NSLog(@"%@",string); 删除
NSRange range1 = {4,1};
[string replaceCharactersInRange:range1 withString:@"好"];
NSLog(@"%@",string); 修改
四.数组
1.初始化
NSArray *list1 = [[NSArray alloc]init];
NSArray*list = [NSArray array];
2.初始化并赋值
(1)直接赋值
NSArray *arry = @[@"数组元素",@"数组元素"];
(2)初始化只有一个元素的数组
NSArray *list = [NSArray arrayWithObject:@"...."];
(3)初始化有多个元素的数组(注意最后边一个元素的逗号不能省略 nil不能省略)
NSArray *list = [NSArrayarrayWithObjects:@"kkk",@"ddd", nil];
3.数组取值
(1)公式:数组名[下标];
例如:(也可以用for循环进行遍历 注意 数组名.count 的使用)
NSArray *list = @[@"我",@"是",@"学生"];
NSString *s = list[0];
NSLog(@"%@",s);
(2)通过方法取值
关键词:oblectAtIndex
例如: NSArray *list = @[@"我",@"是",@"学生"];
NSString *s2 = [list objectAtIndex:1];
NSLog(@"%@",s2);
(3)数组遍历
#:快速遍历
例如: NSArray *list = @[@"我",@"是",@"学生"];
for (NSString *string in list) {
NSLog(@"%@",string);
}
拓展:用快速遍历来遍历对象时 注意条件的填写 类名
4.把字符串 转成数组(注意第一步把字符串以某个符号分割开 此符号将被过滤掉)
例如:(注意关键词)
NSString *string = @"冬天,夏天,春天,秋天";
NSArray *list = [string componentsSeparatedByString:@","];
for (NSString*s in list) {
NSLog(@"%@",s);
}
5.把数组转换成字符串
例如:(注意关键词)
NSArray *list = @[@"春",@"夏",@"秋"];
NSString *s =[list componentsJoinedByString:@","];
NSLog(@"%@",s);
6.可变数组(注意不可直接赋值)
(1)不可变数组里边的方法 都可以在可变数组里用
(2)初始化空数组
NSMutableArray*list = [NSMutableArray array];
(3)初始化并赋值
#:NSMutableArray *list = [NSMutableArrayarrayWithObjects:@"",@"", nil];
(4)增 删 改 查
例如:
NSMutableArray *list = [NSMutableArray arrayWithObjects:@"春",@"夏",@"秋", nil];
[list addObject:@"冬"];
for (NSString*s in list) {
NSLog(@"%@",s);
} 增
[list removeObject:@"春"];
for (NSString *s1 in list) {
NSLog(@"%@",s1);
}删指定内容的
[list removeObjectAtIndex:2];
for (NSString *s2 in list) {
NSLog(@"%@",s2);
} 删指定下标的
[list removeLastObject];删最后一个
[listremoveAllObjects];删所有
//替换
[list replaceObjectAtIndex:0 withObject:@"王龙"];
for (NSString*s3 in list) {
NSLog(@"%@",s3);
}
//查找内容 确定位置
NSString *a = @"秋";
NSUInteger i = [list indexOfObject:a];
NSLog(@"%lu",i);
五.字典
1.什么是字典
key和值对应存在的数据集合就是字典
2.初始化空的字典
#. NSDictionary *d = [NSDictionary dictionary];
#.NSDictionary *s = [[NSDictionary alloc]init];
3.初始化字典并且赋值
(1).直接赋值(常用)
公式:NSDictionary *dic =@{@"Key":@"值",@"key1":@"值1"};
例如:NSDictionary *people1 = @{@"name":@"张三",@"age":@22,@"face":@"帅",@"height":@"高",@"sex":@"男",@"weight":@"50",};
(2).通过方法(函数)赋值(注意值和key的先后顺序)(不常用)
例如:NSDictionary *p1 = [NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"name", nil];
4.从字典里取值(通过key取值)
(1).公式:字典名[key]
例如:NSString *name = people1[@"name"];(用到的字典就是上边的范例)
(2).字典的遍历
#:用到的方法
allKeys获得字典里所有的key
allValues 获得字典里所有的值
例如:(用到的字典还是上边的)
NSArray *allKey = people1.allKeys;
for (NSString *key in allKey) { //用到快速遍历的for方法
NSLog(@"%@",people1[key]);
}
(3).通过方法(函数)取值
(1)先初始化并赋值一个字典如下:
NSDictionary *p1 = [NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"name", nil];
(2)开始取值
NSString *value =[people1 objectForKey:@"name"];
NSLog(@"%@",value);
输出结果:张三
5.可变字典(增 删 改 查)
增:[字典名 setObject:@“值” forKey:@“key”];
删:(1).删除一个
公式:[字典名removeObjectForKey:@"key"];
(2).删除多个
分析:定义一个数组,把想要删除的元素的key放进数组,如下:
NSArray *keys = @[@"title"];
[dic removeObjectForKey:keys];
(3).删除全部元素
公式: [字典名removeAllObjects];
改(替换):
分析 : 替换与增加一样 若原来那个键位有值那就是覆盖 没有就是添加
公式: [字典名 setObject:zhi forKey:key];