OC的语法这里就不给大家介绍了,大家慢慢熟悉。在OC的编程中大家可能不常见到C语言中函数的使用了,OC采用的是消息发送机制,将方法发送给对象。方法分为
加号方法:静态方法,又称为类方法,由类来调用;方法由加号开头。
减号方法:动态方法,又成为对象方法,由对象来调用;方法由加号开头。
例如常见的alloc就是加好方法,init就是建好方法;同理便利构造器方法也是加好方法,对应的自定义初始化方法为减号方法。
//创建一个字符串
//inint
NSString *str1 = [[NSString alloc]init];
//string
NSString *str2 = [NSString string];
//在创建一个简单类型的非空字符串的时候,不需要使用初始化方法和便利构造器方法,直接赋值即可
NSString *str4 = @"iphone";
NSString *name = @"jack";
NSInteger num = 12;
//初始化字符串的时候,将其他类型的数据转化成字符串
NSString *str5 = [NSString stringWithFormat:@"%ld%@", num, name];
NSLog(@"%@", str5);
NSUInteger length = [str5 length];
NSLog(@"%lu", length);
NSString *str6 = @"人生若只如初见";
NSLog(@"%lu", [str6 length]);
//获取子字符串
NSString *sub1 = [str6 substringToIndex:2];
NSLog(@"%@", sub1);
NSString *sub2 = [str6 substringFromIndex:5];
NSLog(@"%@",sub2);
//第一个参数表示截取位置,第二个参数位置表示窃取长度
NSString *sub3 = [str6 substringWithRange:NSMakeRange(2, 3)];
NSLog(@"%@",sub3);
//字符串拼接
//"人生"和"若只如"
NSString *str7 = [sub1 stringByAppendingString:sub3];
//"人生若只如"和"初见"
NSString *str8 = [str7 stringByAppendingString:sub2];
NSLog(@"%@", str8);
//字符串替换
NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"初" withString:@"不"];
NSLog(@"%@", str9);
//字符串相等
BOOL b = [str8 isEqualToString:str9];
NSLog(@"%hhd", b);
//字符串比较
//OC中的排序有三种结果,对应的枚举值分别为-1, 0, 1
NSString *str10 = @"ios";
NSString *str11 = @"ioa";
NSComparisonResult result = [str10 compare:str11];
NSLog(@"%ld", result);
NSString *str = @" 却道故人心易变";
//可变字符串的创建可以直接使用便利构造器,也可以使用不可变字符串创建一个可变字符串
NSMutableString *mutStr1 = [[NSMutableString alloc]initWithString:@"等闲变却故人心"];
NSMutableString *mutStr2 = [[NSMutableString alloc]initWithString:str];
//拼接字符串
[mutStr1 appendString:mutStr2];
//插入字符
[mutStr1 insertString:@"," atIndex:7];
//删除
[mutStr1 deleteCharactersInRange:NSMakeRange(8, 1)];
NSLog(@"%@", mutStr1);
//NSArray
//创建数组
NSArray *array1 = [[NSArray alloc]initWithObjects:@"iphone", @"huawei", @"BlackBerry", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
//获取数组元素个数
NSUInteger count = [array1 count];
NSLog(@"%lu", count);
//获取指定下标的元素
NSString *string = array2[1];
NSLog(@"%@", string);
//NSMutableArray
//NSArray的子类,所以初始化方法可以使用父类的
NSArray *array1 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
//创建可变数组
NSMutableArray *mutArray1 = [[NSMutableArray alloc]initWithObjects:@"liuzhanyu", @"shenwenchao", @"houmeihua", nil];
NSMutableArray *mutArray2 = [NSMutableArray arrayWithObjects:@"libaojian", nil];
//可以根据不可变数组创建可变数组
NSMutableArray *mutArray3 = [NSMutableArray arrayWithArray:array1];
//增加
[mutArray2 addObject:@"libin"];
NSLog(@"%@", mutArray2);
//删除
[mutArray1 removeObjectAtIndex:2];
NSLog(@"%@", mutArray1);
//修改
[mutArray1 replaceObjectAtIndex:1 withObject:@"houmeihua"];
NSLog(@"%@", mutArray1);
//交换两个元素的位置
[mutArray1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"%@", mutArray1);
//遍历数组
NSArray *array = [NSArray arrayWithObjects:@"liyachuan", @"wangjing",@"zhangsan", nil];
for (NSInteger i = 0; i < array.count; i++) {
NSLog(@"%@", array[i]);
}
//值对象
//将基本数据类型转化成对象数据类型用于OC的数据处理
//将整型转化成对象类型
int a = 10;
NSNumber *aNumber = [NSNumber numberWithInt:a];
//将对象转化成基本数据类型
int _a = [aNumber intValue];
NSLog(@"%d", _a);
double d = 3.141592;
NSNumber *dNumber = [NSNumber numberWithDouble:d];
double _d = [dNumber doubleValue];
NSLog(@"%lf", _d);
//变量和对象类型的互转(仅支持系统提供的类型)
NSRange range = {1,4};
NSValue *rValue = [NSValue valueWithRange:range];
NSRange _rang = [rValue rangeValue];