您的位置:首页 > 其它

Foundation框架- NSString用法

2015-11-07 02:08 302 查看
1、Foundation框架介绍

1)什么是框架?

框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架
Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字 典和集合,其他功能包括处理日期和时间、内存管理、处理文件系统、存储(或归档)对象、处 理几何数据结构(如点和长方形)
Cocoa是Foundation和AppKit Cocoa Touch是Foundation和UIKitFoundation框架中大约有125个可用的头文件,作为一个简单的形式,可以简单地使用以下语 句导入 : import <Foundation/Foundation.h> 因为Foundation.h文件实际上导入其他所有 Foundation框架中的头文件。

2)Foundation框架的作用
Foundation框架是Mac\iOS中其他框架的基础 Foundation框架包含了很多开发中常用的数据类型: 结构体
枚举
类
3)如何使用Foundation框架
要想使用Foundation框架中的功能,包含它的主文件即可 #import <Foundation/Foundation.h>
4)不小心修改了系统的文件,引起的错误
有时候会在不经意之间修改了系统自带的头文件, 比如NSString.h, 这时会出现错误 ,我们只需要删除Xcode 的缓存就可以了 :/Users/用户名/Library/Developer/Xcode/DerivedData


二、 Foundation框架中一些常用的类

字符串型:

NSString:不可变字符串

NSMutableString:可变字符串

集合型:

1)

NSArray:OC不可变数组

NSMutableArray:可变数组

2)

NSSet:

NSMutableSet:

3)

NSDictiorary

NSMutableDictiorary

其它:

NSDate

NSObject

补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的。


三、NSString和NSMutableString的使用与注意

1、NSString的创建方法

1)、最直接的方法
NSString *str = @"abc";
NSString *st3 = @"abc";

2) 格式化的方式
NSString *st2 = [NSString stringWithFormat:@"%@", @"jack"];

3) 从文件中读取
NSString *str5 = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/t.txt" encoding:NSUTF8StringEncoding error:&err];

4) 从URL中读取

URL补充内容

Url:资源路径

格式:协议头:/路径

网络路径协议头:http

本地文件以file为协议头

ftp为协议头,说明资源是ftp服务器上的。

传入完整的字符串创建
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"];
通过文件路径创建(默认就是file协议的)
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];


注意:

常见的URL协议头(URL类型)
http\https :超文本传输协议资源, 网络资源
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更 加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http 的连接很简单,是无状态的
https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
ftp :文件传输协议


OC字符串和C字符串的转化



2、 NSString的常见方法:

- (NSString *)uppercaseString; 全部字符转为大写字母
- (NSString *)lowercaseString 全部字符转为小写字母
- (NSString *)capitalizedString
首字母变大写,其他字母都变小写。如果一个句子中有多个单词,那么会将每个单词的首字母 变成大写,其余字母变成小写
- (BOOL)isEqualToString:(NSString *)aString; 两个字符串的内容相同就返回YES, 否则返回NO
注意: == 比较的是两个对象的地址是否相同, 不是字符串内容
- (NSComparisonResult)compare:(NSString *)string; 这个方法可以用来比较两个字符串内容的大小
比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果
NSComparisonResult是一个枚举,有3个值:
如果左侧 > 右侧,返回NSOrderedDescending,
如果左侧 < 右侧,返回NSOrderedAscending, 如果左侧 == 右侧返回NSOrderedSame
- (NSComparisonResult) caseInsensitiveCompare:(NSString *)string; 忽略大小写进行比较,返回值与compare:一致
- (BOOL)hasPrefix:(NSString *)aString; 是否以aString开头


- (BOOL)hasSuffix:(NSString *)aString; 是否以aString结尾
- (NSRange)rangeOfString:(NSString *)aString; 用来检查字符串内容中是否包含了aString
如果包含, 就返回aString的范围
如果不包含, NSRange的location为NSNotFound, length为0
反方向搜索:[str rangeOfString: @”str” options: NSBackwardsSearch]; // 从后向前 搜索
- (NSString *)substringFromIndex:(NSUInteger)from; 从指定位置from开始(包括指定位置的字符)到尾部
- (NSString *)substringToIndex:(NSUInteger)to; 从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
- (NSString *)substringWithRange:(NSRange)range; 按照所给出的NSRange从字符串中截取子串
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;
用replacement替换target
- (NSUInteger)length; 返回字符串的长度(有多少个字符,无论中文字符、英文字符等等,一个字符就是一个字符)
- (unichar)characterAtIndex:(NSUInteger)index; 返回index位置对应的字符
字符串转为基本数据类型
- (double)doubleValue; - (float)floatValue; - (int)intValue;
- (char *)UTF8String; // 在操作SQLite数据库时才会用到
转为C语言中的字符串。 以后可能会用到别人的框架,都是纯C语言的,所以可能会用到把OC字符串转换为C语言的字符串。
去除所有的空格
[str stringByReplacingOccurrencesOfString:@" " withString:@""] 去除首尾的空格
[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


3、

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: