------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一.Foundation框架
1.框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架
2.Foundation框架中大约有125个可用的头文件,作为一个简单的形式,可以简单地使用以下语句导入 : #import <Foundation/Foundation.h> 因为 Foundation.h文件实际上导入其他所有Foundation框架中的头文件
3.如何使用Foundation框架
要想使用Foundation框架中的功能,包含它的主文件即可
#import <Foundation/Foundation.h>
二.NSString
1一个NSString对象就代表一个字符串(文字内容)
一般称NSString为字符串类
2.NSString的创建方式
1).常量字符串
NSString *name=@"a,b,c,d";
2).格式化的方式:字符串存储在堆区
NSString *str=[NSString stringWithFormat:@"jack",@"kim"];
结论:最后输出的name和str的地址是不一样,name是在常量区,str是在堆区
NSString的指向可以变,值不能改变
三.NSURL读写字符串
1.NSURL
1).URL的全称是Uniform Resource Locator(统一资源定位符),URL是互联网上标准资源的地址互联网上的每个资源都有一个唯一的URL,它 包含的信息指出资源的位置
2).可以简单认为: URL ==协议头://主机域名/路径
例:http://ios.itcast.cn/ios/images/content_25.jpg
基本URL包含协议、主机域名(服务器名称\IP地址)、路径协议 服务器的域名 路径
3).常见的URL协议头(URL类型)
http\https :超文本传输协议资源,网络资源 ,https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全
2.NSURL读写字符串
传入完整的字符串创建
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"]; 通过文件路径创建(默认就是file协议的)
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];
四.字符串比较compare
1.取出字符串每个字符的ASCII值就行比较,默认是区分大小写的,这个函数不能增加条件
2.compare方法返回的值有三种:
1)降序排列:1 例:str > str2
2)升序排列:-1 例:str < str2
3) 相等:0 例:str = str2
例:NSComparisonResult result=[str compare:str2];
3.三种比较的方法
1).NSCaseInsensitiveSearch:不区分大小写字符。
2).NSLiteralSearch:进行完全比较,区分大小写。(默认)
3).NSNumericSearch:比较字符串的字符个数,而不是字符值。
比较不区分大小写,比较字符的个数
例:NSComparisonResult result=[str compare:str2 options:NSCaseInsensitiveSearch | NSNumericSearch];-(BOOL) hasPrefix: (NSString *) aString;
2)判断字符串是否以另一个字符串结尾(hasSuffix)
-(BOOL) hasSuffix: (NSString *) aString;
注意:返回值是BOOL类型,也就是yes 和no
2.字符串的查找
1).用来检查字符串内容中是否包含了aString,如果包含,就返回aString在字符串中第一次出现的范围
- (NSRange)rangeOfString:(NSString *)aString;
2).反方向搜索: 从后向前搜索,遇到第一次出现的位置,则结束
[str rangeOfString: @"str" options: NSBackwardsSearch];
3).如果能够查找到字符串首次出现的位置,返回的是字符串的长度和第一次出现的位置,如果没有查找到返回的长度length为0 ,NSRange则 是个很大的数字
六.NSRange的使用
1.NSRange是Foundation框架中比较常用的结构体,
2.定义:typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
3.NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
4.NSRange有2个成员
1).NSUInteger location : 表示该范围的起始位置
2).NSUInteger length : 表示该范围内的长度
例:@“I love iOS”中的@“iOS”可以用location为7,length为3的范围来表示
5.NSRange创建方式
1).NSRange range;
range.location = 7;
range.length = 3;
2).NSRange range = {7, 3};
NSRange range = {.location = 7, .length = 3};
3).使用NSMakeRange函数 ,在字符串location指定的位置开始往后获取length长度的元素
例:NSRange range = NSMakeRange(7, 3);
4).查看Range的值,可以使用
例:NSRange range = {5,8};
NSLog(@"%@", NSStringFromRange(range));
七.字符串的截取和替换
1.截取
1).从指定位置from开始(包括指定位置的字符)到尾部
- (NSString *)substringFromIndex:(NSUInteger)from;
2).从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
- (NSString *)substringToIndex:(NSUInteger)to;
3).按照所给出的NSRange从字符串中截取子串
- (NSString *)substringWithRange:(NSRange)range;
2.替换
八.NSMutableString
1.1).通过调用string方法, 创建一个空的NSMutableString
- (void)appendString:(NSString *)aString;
2)拼接aString到最后面
- (void)appendFormat:(NSString *)format, ...;
3)拼接一段格式化字符串到最后面
- (void)deleteCharactersInRange:(NSRange)range;
2.注意:@”hello”这种方式创建的字符串始终是NSString,不是NSMutalbeString.所以下面的代码创建的还是NSString,此时使用可变字符串的函数,无法操作字符串。NSMutableString *s1 = @”hello”;
3.NSString 指向是可以变的,值是不能改变的。
NSMutableString 值是可以改变的