------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、Foundation框架介绍
1、什么是Foundation框架
Foundation框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发变得更容易在OS X下的Mac操作系统中大约80框架为所有程序开发奠定基础的框架称为Foundation框架。
Foundation框架允许使用一些基础基础对象,如数字和字符串,以及一些对相机和,如数组、字典和集合,其他功能包括日期和时间,内存管理、处理文件系统、存档对象、处理几何数据结构。
Foundation框架有125个可用头文件,可用通过简单的导入一个头文件来包含框架中所有的头文件,为
#import <Foundation/Foundation.h>
2、Foundation框架的作用
Foundation框架是Mac\iOS中其他框架的基础。它包含了开发中常用的数据类型,如:结构体、枚举、类等
二、NSString类
1、什么是NSString
一个NSString对象就代表一个字符串,一般称NSString为字符串类。
2、NSString的创建和初始化
1)创建并直接初始化(常量字符串)
NSString *str = @"hello world";
2)创建并格式化赋值
stringWithFormat方法 NSString类方法 参数:字符串类型数据或格式控制符 返回类型:NSString类型
NSString *str2 = [NSString stringWithFormat:@"%@",@"hello world"];
NSString *str3 = [[NSString alloc]stringWithFormat:@"%@",@"hello my friends"];
字符串存放在堆区
3、文件读写
字符串写入文件 writeToFile:atomically:encoding:error方法 NSString对象方法 参数:文件地址+是否原子性+字符标准+错误返回 返回类型:BOOL类型
NSString *str = [NSString stringWithFormat:@"%@",@"ddsa"];
[str writeToFile:@"/Users/jiangda/Desktop/oc.txt" atomically:NO encoding:NSUTF8StringEncoding error:nil];
字符串读取文件 stringWithContentsOfFile:encoding:error方法 NSString类方法 参数:文件地址+字符标准+错误返回 返回NSString类型
NSString *str1 = [NSString stringWithContentsOfFile:@"/Users/jiangda/Desktop/oc.txt" encoding:NSUTF8StringEncoding error:nil];
4、NSSting其他常用方法
1)比较字符串大小 compare方法 NSString对象方法 参数:字符串 返回类型:NSComparisonResult类型(BOOL类型的别名)
NSString *str = @"aaa";
NSString *str1 = @"bbb";
NSComparisonResult result = [str compare:str1];
NSLog(@"%ld",result);
NSComparisonResult类型为enum类型别名: NSOrderedDescending 1 str>str1
NSOrderedAscending -1 str<str1
NSOrderedSame 0 str = str1
此方法变形 compare:options方法 增加选项参数:NSCaseInsensitiveSearch:字符不区分大小写 NSLiteralSearch:进行完全比较,区分大小写(默认)
NSNumericSearch:比较字符串的字符个数,非字符值
NSString *str = @"aaa";
NSString *str1 = @"b";
NSComparisonResult result = [str compare:str1 options:NSNumericSearch];
2)前后缀查询搜索
检查字符串是否以另一个字符串开头:hasPrefix方法 NSString对象方法 参数:要查询的开头字符串 返回:BOOL类型
检查字符串是否以另一个字符串结束:hasSuffix方法 NSString对象方法 参数:要查询的结尾字符串 返回:BOOL类型
检查字符串是否包含所查询字符串:rangOfString方法 NSString对象方法 参数:要查询的字符串 返回:NSRange类型 (如包含返回位置和长度,否则返回巨大的数值)
NSString *str = @"http://www.baidu.com";
BOOL b1 = [str hasPrefix:@"http://"];
BOOL b2 = [str hasSuffix:@".com"];
NSRange ran = [str rangeOfString:@"baidu"];
3)字符串截取
从参数位置开始截取值字符串尾部:substringFromIndex方法 NSString对象方法 参数:NSUInteger开始截取位置(包括此指定位置的字符)
从字符串开头截取讨指定位置:substringToIndex方法 NSString对象方法 参数:NSUInteger结束位置(不包括此指定位置的字符)
按照指定范围(NSRange)截取字符串:substringWithRange方法 NSString对象方法 参数:NSRange范围与长度
4)字符串替换
stringByReplacingOccurrencesOfString方法 NSString对象方法 参数:字符串中原字符串+字符串中替换字符串 返回:NSString类型(可将“ ”替换成“”消除空格)
5)获取字符串中字符
获取字符串长度:length方法 NSString对象方法 无参 返回:字符串长度NSUInteger类型
获取字符串中整形:intValue方法 NSString对象方法 无参 返回:int类型
获取字符串中浮点型:floatValue方法 NSString对象方法 无参 返回:float类型
获取字符串中双浮点行:doubleValue方法 NSString对象方法 无参 返回:double类型
将C语言字符串转换成OC语言字符串:stringWithUTF8String方法 NSString类方法 参数:C语言字符串 返回:NSSting类型
将OC语言字符串转换成C语言字符串:UTF8String方法 无参 NSString对象方法 返回:char *类型
NSString *str = @"124";
NSString *str2 = @"12.33";
NSString *str3 = @"das";
NSUInteger inte = [str length];
int i = [str intValue];
float f = [str2 floatValue];
double d = [str2 doubleValue];
char *c = "dggeds";
NSString *str4 = [NSString stringWithUTF8String:c];
const char *c1 = [str3 UTF8String];
三、NSMutableString的介绍
一、基本概念
NSMutableString类继承NSString类,NSString提供的方法NSMutableString中基本都可以使用。它是一个不固定的字符串,是可变的,可以任意的添加、删除、在指定位置插入字符串,而NSString里面的字符串是不可变的。
不可变:字符串在内存中占用的存储空间固定,并且存储的内容不能改变。
可变:字符串在内存中占用的存储空间不固定,存储的内容也可以改变。
二、常用方法
创建一个空的字符串:string方法 NSMutableString类方法 无参 返回:Id类型
添加一个字符串:appendString方法 NSMutableString对象方法 参数:NSString字符串 返回:void类型
添加一个格式化字符串:appendFormat方法 NSMutableString对象方法 参数:字符串类型数据或格式控制符 返回:void类型
删除指定位置的字符串:deleteCharactersInRange方法 NSMutableString对象方法 参数:范围与长度NSRange 返回:void类型
将指定字符串插入自定位置:insertString:atIndex方法 NSMutableString对象方法 参数:指定字符串NSString+位置NSUInteger 返回:void类型
将指定字符串替换指定范围内字符串:replaceCharactersInRange:withString方法 NSMutableString对象方法 参数:NSRange范围+NSString字符串 返回:void类型
NSMutableString *mu2 = [NSMutableString string];
[mu2 appendString:@"abcdefgh"];
int i = 4;
[mu2 appendFormat:@"%d",i];
NSRange ran = {2,1};
[mu2 deleteCharactersInRange:ran];
[mu2 insertString:@"zyx" atIndex:4];
[mu2 replaceCharactersInRange:ran withString:@"oput"];