1.OC中的基本类型
NSInteger在64位相等于long,在非64位相当于int
CGFloat在64位相当于double,在非64位相当于float
2.如何使用API文档学习系统库中的类
help—>Documentation and API reference以这种方式进入API文档
快捷键:option + 左键 进入API文档 cmd + 左键 进入类的头文件(严重警告:进系统头文件之后,退出时一定要按几次 cmd + Z)看系统头文件适合已经对这个类有很大的了解的
3.看系统API文档是需要注意哪些关键字
Inherits from 继承自哪个类
conform to 遵循哪个协议
framwork 这个类定义在哪个框架下
Availability 从ios哪个版本开始支持使用这个类
Decleard in 声明在哪个头文件中
Samp code 示例代码
guides 相关指南
4.NSString是一个字符串类,而且是一个不可变的字符串类,父类是NSObject,用NSString创建出来的对象,一经创建就不能修改;NSMatbleString是NSString的子类
5.类簇:将一些私有的子类,组合在一起,形成一个公共的抽象的超类,那么这个超类就是类簇
6.OC中如何创建字符串
(1)快速创建字符串的方法
NSString *str = @“lanou”;
(2)创建空字符串
NSString *str1 = [ [NSString alloc]init];
NSLog(@"内容:%@,地址:%p",str1,str1);
str1 =
@"nihao";//这种改变是指针的重指向
NSLog(@"内容:%@,地址:%p",str1,str1);
NSString *str2 = [NSString string];
NSLog(@"====%@",str2);
创建不可变空字符串是没有任何意义的
(3)创建格式化不可变字符串对象
NSString *str3 = [ [
NSString alloc]initWithFormat:@“%@ %@“,@“lanou”,@“I
love you”];
NSString *str4 = [ [NSString
alloc]initWithFormat:
@"我%@",@"凤姐"];
NSLog(@"%@",str3);
NSLog(@"%@",str4);
(4)创建字符串的另一种方式,现在一经不用了
NSString *str5 = [
[NSString alloc]initWithString:
@"我在兰鸥"];
NSString *str5 = [NSString stringWithString:@"我也在37班,我怎么不认识"];
(5)将c语言的字符串转换成OC 字符串
NSString *str6 = [ [NSString alloc]initWithUTF8String:
"ios"];
NSLog(@"%@",str6);
NSString *str7 = [NSString stringWithUTF8String:
"ios"];
NSLog(@"%@",str7);
(6)将文件中的字符内容传到字符串对象中
第一个参数:文件的路径
第二个参数:编码格式
第三个参数:如果出错了返回值存放的位置
NSString *str8 = [ [ NSString alloc]initwithContentsOfFile: “文件路径的"
encoding:
"编码格式" NSUTF8StringEncoding error:
nil];
NSLog(@"%@",str8);
NSString *str9 = [ [NSString stringWithContentsOfFile:“文件路径的"
encoding:
NSUTF8StringEncoding error:
nil];
// NSLog(@"%@",str9);
(7)操作字符串的方法
计算字符串长度的方法
NSString *ss =
@“lanou3g”;
NSUInteger len = [ss length];
NSLog(@"%lu",len);
一个中文占三个字节
NSString *ss2 =
@"祥哥,今天晚上去如家吧?
";
NSLog(@"%lu",ss2.length);
(8)返回某个字符串片段的方法
NSRange 是OC中的结构体,结构体有两个成员变量,location表示起始位置,length表示从起始位置取多长
NSString *str10 =
@"abcdefg" ;
NSRange rang = {3,3};
NSString *sunString = [str10 substringWithRange:ran];
NSLog(@"%@",sunString);
(9)返回子串在父串的范围
rang = [str10 rangeOfString:
@"def"];
NSLog(@"loctation:%lu length:%lu",rang.location,rang.length);
(10)获取到从0位置到某个位置的字符串不包括提供位置的字符
NSString *str11 = [str10 substringToIndex:4];
NSLog(@"%@",str11);
(11)从某个位置开始获得字符串,直到父串的结尾,包含提供位置的字符
NSString *str12 = [str10 substringFromIndex:4];
NSLog(@"%@",str12);
(12)返回格式化拼接的字符串
NSString *str13 = [str11 stringByAppendingFormat:
@"%@",str12];
NSLog(@"%@",str13);
(13)字符串的替换,将目标子串从父串中用我们给定字符串替换掉
NSString *str14 = [str13 stringByReplacingOccurrencesOftring
@"苍老师": withString:
@"波多野结衣"];
NSLog(@"%@",str14);
(14)判断一个字符串是否有前缀和后缀
先创建一个字符串
NSString *str15 =
@"中国北京中南海地区";
BOOL isHas = [str15 hasPrefix:
@"中国北京"];
NSLog(@"%@",isHas? @"有这个前缀" : @"没有这个前缀");
isHas = [str15 hasSuffix:
@"地区"];
NSLog(@"%@",isHas? @"有这个后缀" : @"没有这个后缀");
练习题1
//判断字符串@"陈冠希"是否有.jpg,如果没有给他拼接上.jpg,如果有.jpg,将.jpg替换为.png
NSString *cString = @"陈冠希";
NSString *newCstring = nil;
BOOL isHave = [cString hasSuffix:@".jpg"];
if (isHave) {
newCstring = [cString stringByReplacingOccurrencesOfString:@".jpg" withString:@"png"];
}else{
newCstring = [cString stringByAppendingString:@".jpg"];
}
NSLog(@"%@",newCstring);
NSString *cString = @"陈冠希";
NSString *newCstring = nil;
BOOL isHave = [cString hasSuffix:@".jpg"];
if (isHave) {
newCstring = [cString stringByReplacingOccurrencesOfString:@".jpg" withString:@"png"];
}else{
newCstring = [cString stringByAppendingString:@".jpg"];
}
NSLog(@"%@",newCstring);
(15)oc中判断两个字符串是否相等的方法
NSString *sStr =
@"吉泽明步"
;
NSString *sStr1 =
@"吉泽明步"
;
BOOL isEqual = [sStr isEqualToString:sStr1];
NSLog(@"%@",isEqual? @"相等":@"不相等");
练习题2
模拟qq用户登录界面,判断用户输入的密码和用户名,和服务器里存储的用户名和密码是否相同,如果都相同则显示登录成功,否则,显示用户名和密码错误
//#define kUserName @"827346996"
//#define kPassWord @"max1893718"
NSString *inputName = @"827346996";
NSString *inputPassWord = @"max1893718";
BOOL isHork = [inputName isEqualToString:kUserName];
BOOL isPassWord = [inputPassWord isEqualToString:kPassWord];
if (isHork && isPassWord) {
NSLog(@"登陆成功");
}else{
NSLog(@"你输入的用户名密码或错误");
}
//#define kUserName @"827346996"
//#define kPassWord @"max1893718"
NSString *inputName = @"827346996";
NSString *inputPassWord = @"max1893718";
BOOL isHork = [inputName isEqualToString:kUserName];
BOOL isPassWord = [inputPassWord isEqualToString:kPassWord];
if (isHork && isPassWord) {
NSLog(@"登陆成功");
}else{
NSLog(@"你输入的用户名密码或错误");
}
(16)比较两个字符串的大小
NSString *sStr2 =
@"NBA";
NSString *sStr3 =
@"Nba" ;
[sStr2 compare:sStr3];
typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
NSOrderedAscending -1 升序,前一个字符串小于后一个字符串
NSOrderedSame 0 相等
NSOrderedAscending -1 升序,前一个字符串小于后一个字符串
NSOrderedSame 0 相等
NSOrderedDescending 1
降序,前一个字符串要大于后一个字符串
NSInteger n = [sStr2 compare:sStr3];
switch(n){
case NSOrderedSame:
NSLog(@"%@=%@",sStr2,sStr3);
break;
case NSOrderedAscending:
NSLog(@"%@ <%@",sStr2,sStr3);
break;
case NSOrderedDescending:
NSLog(@"%@ > %@",sStr2,sStr3);
break;
default:
break;
(17)不区分大小写的方式
n = [sStr2 caseInsensitiveCompare:sStr3];
NSLog(@"%ld",n);
6.NSMutableString是可变字符串,继承的是NSString,所以NSString的所有方法,NSMutableString都可以调用
(1)这种创建字符串的形式可以提高一定的效率,如果存入的字符串长度小于开辟的虚拟空间的长度,则直接放入,免去了开辟空间的时间,如果此时开辟的空间小于要放入的字符串的长度,此时,就要再开辟空间长度
NSMUtableString *mStr = [ [NSMutableString alloc]initWithCapacity:10];
(2)插入一个字符串
[mStr insertString:
@"索宁"
atIndex:0];
NSLog(@"%@",mStr);
(3)创建可变字符串的另一种方法,这个方法是它父类的
NSMutableString *Str1 = [ [NSMutableString alloc]initWithString:
@"我与索宁有个约会"];
NSLog(@"%@",Str1);
(4)快速创建可变字符串,必须在后面加上.mutableCopy
NSMutableString *mStr2 =
@"我和僵尸有个约会" .mutableCopy;
(5)可变字符串拼接
格式化拼接
[mStr2 appendFormat:
@"%@",@"在日本广岛"];
NSLog(@"%@",mStr2);
[mStr2 appendString:
@"吃着炸鸡喝着啤酒"];
NSLog(@"%@",mStr2);
(6)删除某段字符串
NSRange rang1 = {1,7};
[mStr2 deleteCharactersInRange:rang1];
NSLog(@"%@",mStr2);
(7)改可变字符串
[mStr2 replaceCharactersInRange:
NSMakeRange(2,
4)
withSting:
@"人民广场"
];
NSLog(@"%@",mStr2);
(8)每个单词首字母大写
NSMutableString *mStr3 =
@"i am student come DanCheng”.mutableCopy;;
NSString *upFirstWord = [mStr3 capitalizedString];
NSLog(@"%@",upFirstWord);
(9)将所有单词都大写
NSString *upAllWord = [mStr3 uppercaseString];
NSLog(@"%@",upAllWord);
(10)将所有字母小写
NSMutableString *mStr4 =
@"I AM".mutableCopy
;
NSString *lowerAllWord = [mStr4 lowercaseString];
NSLog(@"%@",lowerAllWord);