一、使用苹果帮助文档
查阅头文件:COMMAND + 左击
查阅文档:
a.help->Documentation and API Reference
b.Command+Shitf+0
c.Alt + 左击
⽂档基本信息
Inherits from 继承⾃
Conforms to 遵循什么协议
Framework 属于哪个框架
Availability 什么时候可⽤的
Declared in 声明在什么头⽂件⾥
Related documents 相关⽂档
Sample code ⽰例代码
二、字符串类
#pragma mark ---- NSString 不可变字符串 ----
#pragma mark -- 创建字符串对象
// 字符串常量
NSString * s1 = @"Hello";
// 格式化字符串
NSString * s2 = [[NSString alloc] initWithFormat:@"%.1f",6.5];
NSString * s3 = [[NSString alloc] initWithFormat:@"%@ world", s1];
// 便利构造器 stringWithString 实际为Copy,s4、s3地址不一样
NSString * s4 = [NSString stringWithString:s3];
// 从文件中读取文本,创建字符串对象
NSString * s5 = [[NSString alloc] initWithContentsOfFile:@"pathUrl" encoding:NSUTF8StringEncoding error:nil];
// 使用C语言的字符串创建
NSString * s6 = [NSString stringWithCString:"Hello C " encoding:NSUTF8StringEncoding];
// 转换为C语言的字符串
char *char = s6.UTF8String;
#pragma mark -- 字符串长度、范围
NSString * testStr = [NSString stringWithFormat:@"BJS150726"];
// 获取字符串长度
NSUInteger strLength = [testStr length];
// 范围
// NSRange是结构体类型
NSRange range = [testStr rangeOfString:@"0726"]; // 输出{5,4}
/*--------NSRange to NSString--------*/
NSLog(@"%@", NSStringFromRange(range));
NSRange range1 = NSMakeRange(5, 4); // 输出{5,4}
#pragma mark --字符串比较
// 判断字符串是否包含某个前缀
BOOL r1 = [testStr hasPrefix:@"BJS"]; // true包含, false不包含//hasSuffix 后缀
// 比较两个字符串大小
NSComparisonResult comp = [@"abc" compare:@"xyz"]; // comp=-1, 即str1<str2//NSComparisonResult为枚举
// 判断是否是字符串的字串
/*---------------方法一 iOS 8 & OSX 10.10 available------------------*/
[testStr containsString:@"0726"]; // 包含true
// 方法2
NSRange range2 = [testStr rangeOfString:@"0725"];
BOOL isIncluded = range2.length; //
// 判断两个字符串对象的内容是否相同
[@"abc" isEqualToString:@"xyz"]; // 相等返回true
#pragma mark --字符串大小写转换
NSString * str3 = @"ABCdef";
NSString * upStr3 = [str3 uppercaseString]; //大写
NSString * loStr3 = [str3 lowercaseString]; //小写
#pragma mark --字符串截取
// 从起始至index-1
NSString * cutTestStrToIndex = [testStr substringToIndex:3]; // 共截取3个字符,为@"BJS"
// 从index至末尾
NSString * cutTestStrFromIndex = [@"BJS150726" substringFromIndex:5]; // @"1507"
NSString * cutTestStrWithRange = [testStr substringWithRange:NSMakeRange(3, 2)]; //15
#pragma mark --字符串拼接、替换
// 拼接和替换,返回新NSString对象
// append
NSString * str5 = @"北京";
NSString * appendStr = [str5 stringByAppendingString:@"蓝鸥科技"]; //北京蓝鸥科技
NSString * appendFormatStr = [appendStr stringByAppendingFormat:@"BJS%@%@",@"150726", @"-94"]; //北京蓝鸥科技BJS150726-94
// replace
NSString * repStr = [str5 stringByReplacingOccurrencesOfString:@"北" withString:@"南"]; // 南京 //根据字符串替换
NSString * repStr2 = [str5 stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:@"南"]; // 南京 //根据位置替换
#pragma mark --字符串和基本数据类型转换
// 将字符串转换为整形数
NSString * str6 = @"123";
int a = [str6 intValue]; // a=123 其他value进入intValue中看
#pragma mark -----NSMutableString 可变字符串 -----
// 创建可变字符串对象
NSMutableString *ms1 = [[NSMutableString alloc] init];
[ms1 setString:@"hello"];
// 拼接
[ms1 appendString:@"world"];
NSLog(@"ms1 = %@",ms1);
// 插入
[ms1 insertString:@" " atIndex:5];
// 替换
[ms1 replaceCharactersInRange:NSMakeRange(6, 5) withString:@"lanou"];
// 删除
[ms1 deleteCharactersInRange:NSMakeRange(5, 6)];
三、数组对象
集合(collection):iOS中存放数据的容器类
#pragma mark -----NSArray 不可变数组-----
/*
1、数组对象中只能存储对象类型(*),不能存储基本数据类型
2、数组对象中可以同时存储不同类型的对象
3、有序,下标从0开始/越界崩溃
*/
// 创建数组对象 /nil为结束标志
NSArray * array1 = [[NSArray alloc] initWithObjects:@"你好", @"2", @"3", nil];
// 使用数组创建数组
NSArray * array2 = [NSArray arrayWithArray:array1];
// 获取数组元素个数
NSUInteger uIntNum = [array1 count];
uIntNum = [array1 indexOfObject:@"你好"];
// 语法糖
// 创建数组
NSArray * array3 = @[@"1", @"2", @"hi"];
// 访问元素 array3[0];
#pragma mark -----NSMutableArray 可变数组-----
// 创建
NSMutableArray * marr1 = [NSMutableArray array];
// 添加
[marr1 addObject:@"10"];
[marr1 addObject:@"20"];
// 插入
[marr1 insertObject:@"3" atIndex:2];
// 交换数组中两个数组元素的位置
[marr1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
// 替换
[marr1 replaceObjectAtIndex:2 withObject:@"one"];
// 移除
//[marr1 removeAllObjects];
// 遍历 //符合getter语法的方法,均可用.调用
for (int i = 0; i < marr1.count; i++) {
NSLog(@"%@", marr1[i]);
}
QA :
QA: oc是否有默认形参值
ans:NO!
来源:oschina
链接:https://my.oschina.net/u/2429082/blog/487245