一、使用苹果帮助文档
1、帮助文档的作用:帮助开发者快速了解系统类的功能。
1)苹果每次iOS版本的升级,都会添加或者更新大量的API,并提供相应的参考文档。
2)开发者很难记忆所有的API(苹果帮助文档)。
3)学会使用苹果帮助文档是开发者的一项技能。
2、打开帮助文档:Xcode—>Help—>Documentation and API Reference。
3、文档基本信息:Inherits from 继承关系。
Conforms to 遵循什么协议。
Framework 属于哪个框架。
Availability 什么时候可用的。
Declared in 声明在什么头文件里。
Related documents 相关文档。
Sample code 示例代码。
4、快速打开帮助文档
在代码中,将鼠标停留在类名或者方法名上,option+鼠标左键,点击Reference的超链接进入帮助文档。
也可使用command+鼠标左键,进入头文件,查看类的接口部分。
5、API与头文件的区别
1)苹果帮助文档(API)中详细的介绍了方法的作用以及如何使用。
2)头文件内知识简略的显示方法。
3)当我们想详细的了解某一个类的功能的时候,使用苹果帮助文档(API)。
4)当我们忘记某一个属性或者方法名的写法的时候,可以进入头文件进行快速查看。
二、NSString
1、C语言中,字符串是由char(ASCII码)字符组成。
OC中,字符串是由unichar(Unicode)字符组成。
NSString:不可变字符串,即:创建以后,内容和长度不能更改。
NSMutableString:可变字符串,即:创建以后,内容还可以修改。
2、字符串创建
// 初始化方法
NSString *string = [[NSString alloc] initWithFormat:@"I love iOS!"];
// 便利构造器
NSString *string1 = [NSString stringWithFormat:@"I fuck iOS!"];
// 字面量
NSString *string2 = @"I love lanou!";
3、NSString常用方法
// 1.获取字符串长度 NSString *string1 = [NSString stringWithFormat:@"jkaruu"]; // NSLog(@"stringLength = %ld", string1.length); // 2.获取指定位置字符 unichar c = [string1 characterAtIndex:0]; NSLog(@"c = %c", c); // 3.判断字符串的前缀 后缀 BOOL isHasSuffix = [string1 hasSuffix:@"www."]; NSLog(@"isHasSuffix = %d", isHasSuffix); BOOL isHasPerfix = [string1 hasPrefix:@"jk"]; NSLog(@"isHasPerfix = %d", isHasPerfix); // 4.查找某个字符串在另一个字符串的范围 NSString *string2 = @"蓝鸥科技有限公司"; NSString *string3 = @"蓝鸥科技"; // NSRange 结构体,表示范围 // location:起始位置 // length:长度 NSRange range = [string2 rangeOfString:string3]; NSLog(@"location = %ld, length = %ld", range.location, range.length); // 5.字符串截取 NSString *string4 = @"hello world kitty"; NSRange range1 = NSMakeRange(0, 5); NSString *string5 = [string4 substringWithRange:range1]; NSLog(@"string5 = %@", string5); // 从指定位置向前截取,不包含指定位置的下标 NSString *string6 = [string4 substringToIndex:7]; NSLog(@"string6 = %@", string6); // 从指定位置向后截取,包含指定位置的下标 NSString *string7 = [string4 substringFromIndex:5]; NSLog(@"string7 = %@", string7); // 6.字符串拼接 NSString *string8 = @"zhangsan"; NSString *string9 = @"lisi"; NSString *stringL = [string8 stringByAppendingString:string9]; NSLog(@"stringl = %@", stringL); // 7.字符串替换 NSString *string10 = @"wangwu"; NSString *string11 = [string10 stringByReplacingOccurrencesOfString:string10 withString:@"liuaoran"]; NSLog(@"string11 = %@", string11); // 8.字符串比较 NSInteger result = [string10 compare:string11]; NSLog(@"result = %ld", result); // 判断两个字符串是否相等 BOOL isEqual = [string10 isEqualToString:string11]; NSLog(@"isEqual = %d", isEqual); // 9.字符串和数值的类型转换 NSString *s1 = @"123"; NSInteger strValue = [s1 integerValue]; NSLog(@"strValue = %ld", strValue); // 10.字符串大小写之间的转换 // 首字母大写 string10 = [string10 capitalizedString]; NSLog(@"string10 = %@", string10); // 全部字母大写 string10 = [string10 uppercaseString]; NSLog(@"string10 = %@", string10); // 全部字母小写 string10 = [string10 lowercaseString]; NSLog(@"string10 = %@", string10);
三、NSMutableString
1、NSMutableString是NSString类的子类。
2、NSMutableString创建的字符串是一个动态的可变的字符串,可以对原字符串对象进行增、删、改等操作。
3、可变、不可变区别
1)不可变字符串——本身不能被修改。
2)对不可变字符串的修改操作,操作的是原字符串的副本,得到的是一个新的字符串。
3)可变字符串——本身能被修改。
4)可变字符串修改的是原字符串,因此可变字符串的操作方法没有返回值!
4、NSMutableString创建
// 初始化方法
NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"I love lanou!"];
// 便利构造器
NSMutableString *str1 = [NSMutableString stringWithFormat:@"i love lanou"];
5、NSMutableString的方法
// 1.拼接字符串 NSMutableString *mString1 = [NSMutableString stringWithFormat:@"zhangsan"]; [mString1 appendString:@"666"]; NSLog(@"mString1 = %@", mString1); // 2.插入字符串 [mString1 insertString:@"," atIndex:8]; NSLog(@"mString1 = %@", mString1); // 3.删除字符串 [mString1 deleteCharactersInRange:NSMakeRange(3, 2)]; NSLog(@"mString1 = %@", mString1); // 4.字符串替换 [mString1 replaceCharactersInRange:NSMakeRange(3, 3) withString:@"ng"]; NSLog(@"mString1 = %@", mString1); // 5.重置字符串 [mString1 setString:@"zhangsan"]; NSLog(@"mString1 = %@", mString1);
四、NSNumber
1、数值类,作用:实现基本数据类型与OC对象类型的相互转化。
1)基本数据类型(int,float等)转换为NSNumber。
2)NSNumber转换为基本数据类型 (int,float等)。
2、NSNumber的常用方法
// 把数值对象转为基本数据类型 NSNumber *number1 = [[NSNumber alloc] initWithInt:11]; double a = [number1 doubleValue]; NSLog(@"%f", a); NSLog(@"%@", number1);
3、NSNumber字面量
常量:
NSNumber *intNumber = @38;
NSNumber *charNumber = @‘w’;
变量:
int age = 18;
NSNumber *ageNumber = @(age);
char gender = ‘w’;
NSNumber *genderNumber = @(gender);
五、NSValue
1、完成结构体和对象类型的互转。结构体(NSRange等)转换为NSValue。NSValue转换为结构体(NSRange等)。
2、NSValue的常用方法
// 创建对象 NSRange range0 = NSMakeRange(0, 3); NSValue *value1 = [NSValue valueWithRange:range0]; NSLog(@"value1 = %@", value1); // 把指针转为数值对象 int b = 10; int *p = &b; NSValue *value2 = [NSValue valueWithPointer:p]; NSLog(@"value2 = %@", value2); // 把数值对象转为结构体 NSRange range3 = [value1 rangeValue]; NSLog(@"location = %ld, length = %ld", range3.location, range3.length); // 把数值对象转为指针 int *q = [value2 pointerValue]; NSLog(@"q = %d", *q);