最近在学Objective-C,来做iOS开发,会陆陆续续把学习的内容补充完整。
一 将NSString对象写入文件
在将字符串对象写入文件时,要指定字符串编码。字符串编码的作用是描述字符和代表字符的数字之间的映射关系。在ASCII码中,字符“A”对应01000001.在UTF-16编码中,字符“A”对应0000000001000001.
Foudation框架大约支持20种不同的字符串编码,UTF编码支持几乎所有的语言。UTF分为UTF-8和UTF-16.在UTF-16中,一个字符将占用2个或者更多的字节。在UTF-8编码中,ASCII字符集中的前128个字符将占一个字节,其他的字符将在占用两个或者更多的字节。
创建一个新的项目,类型为机遇Foundation的Command Line Tool,名称为Stingz.在main()函数中,通过NSString的类方法创建对象,然后将新创建的对象写入文件,代码如下:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSMutableString *str = [[NSMutableString alloc] init];
for(int i = 0; i < 10; i++){
[str appendString:@"Aaron is cool!\n"];
}
[str writeToFile:@"/tmp/cool.txt" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
//创建一个文本,并将数组的中内容写入到文本中
NSLog(@"done writing /tmp/cool.txt");
}
return 0;
}
文件路径可以是绝对的或者相对的:绝对路径以/开头(/代表文件系统的根目录),而相对路径则是相对于程序当前的工作目录。相对路径不会以/开头。
二 NSError
在将字符串写入文件时可能会出现各种错误。为了让调用方有机会处理错误,苹果公司提供的很多方法都有要通过引用传入的NSError指针参数。更新上述代码,加入错误处理代码:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSMutableString *str =