版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.05.05 |
前言
前面我简单的写了写NSString的初始化,写了几篇,都不难,但是可以对新手有一定的小帮助,对于大神级人物可以略过这几篇,NSString本来就没有难的,都是细枝末节,忘记了查一下就回了,没有技术难点,下面我们继续~~~
1. NSString简单细说(一)—— NSString整体架构
2. NSString简单细说(二)—— NSString的初始化
3. NSString简单细说(三)—— NSString初始化
4. NSString简单细说(四)—— 从URL初始化
向文件或者URL写入
一、- (BOOL)writeToFile:(NSString ***)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **** _Nullable *)error;
根据给的路径,将一个字符串写入到这个路径的文件中,并返回YES 或者 NO来代表是否写入成功。先看代码。我们现在桌面生成一个空白的测试文件test.txt。如下。
/**
*1. - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError * _Nullable *)error;
*
* @param path :If YES, the receiver is written to an auxiliary file, and then the auxiliary file is renamed to path. If NO, the receiver is written directly to path. The YES option guarantees that path, if it exists at all, won’t be corrupted even if the system should crash during writing.
* @param enc :The encoding to use for the output. For possible values, see NSStringEncoding.
* @param error :If there is an error, upon return contains an NSError object that describes the problem. If you are not interested in details of errors, you may pass in NULL.
*
* @return :YES if the file is written successfully, otherwise NO (if there was a problem writing to the file or with the encoding).
*/
NSString *textStr = @"balabalabala~~~~";
NSString *path = @"/Users/lucy/Desktop/test.txt";
NSError *error;
BOOL isSuccess = [textStr writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"isSuccess---%d",isSuccess);
if (error) {
NSLog(@"%@---error",error);
}
然后我们看输出
2017-05-05 22:11:49.106 NSString你会用吗?[1261:33517] isSuccess---1
结果1代表成功,我们再看一下文件夹,看看是否成功写入。
可见是成功写入了,这里重点要说一下这几个参数。
path:路径,就是要将字符串写入的地址。如果路径包含波形符号(〜),则在调用此方法之前,必须使用stringByExpandingTildeInPath进行扩展。也就是说系统会将""替换成主目录。另外一个方法stringByAbbreviatingWithTildeInPath的意思就是将主目录替换成""。用的不是很多,大家知道就好。
useAuxiliaryFile:BOOL 是否使用临时文件,如果传入YES,则先将文件写入一个临时文件中,如果写入成功在重命名到指定的路径中,它的特点就是安全,但是效率低;如果传入NO,则直接将文件写入到指定路径中,特点就是不安全但是效率高。
enc:编码格式,这个在ios中是一个枚举值,存储各种编码格式,我们一般用NSUTF8StringEncoding。
error:错误状态码。如果成功则什么都不返回,如果写入失败则会返回很多错误信息,大家可以从信息里面看出来自己哪里出问题了。如果你对是否成功不感兴趣,可以直接给nil,我这里给的&error。
结论:简单不难,大家自己看吧,都能看懂。
二、- (BOOL)writeToURL:(NSURL *****)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError**** _Nullable *)error;
这个例子不是很好举,其实就是向URL地址文件中写入一个字符串,这个例子不好举不是因为它难,而是因为我没有可用的URL进行写和测试。 这里就说一下这几个参数吧。
/**
*2.- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError * _Nullable *)error;
*
* @param url :The URL to which to write the receiver. Only file URLs are supported.
* @param useAuxiliaryFile : If YES, the receiver is written to an auxiliary file, and then the auxiliary file is renamed to url. If NO, the receiver is written directly to url. The YES option guarantees that url, if it exists at all, won’t be corrupted even if the system should crash during writing.The useAuxiliaryFile parameter is ignored if url is not of a type that can be accessed atomically.
* @param enc :The encoding to use for the output.
* @param errot: error
*
* @return :YES if the URL is written successfully, otherwise NO (if there was a problem writing to the URL or with the encoding).
*/
NSString *textStr = @"balabalabala~~~~";
NSURL *pathURL = @"要写入的URL";
NSError *error;
BOOL isSuccess = [textStr writeToURL:pathURL atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"isSuccess---%d",isSuccess);
if (error) {
NSLog(@"%@---error",error);
}
实在不好意思,这个就没有测试结果了,这个先就这样吧,知道怎么用就可以了。
结论:虽然简单但是一般不用。
后记
这个就先写这么多吧,待续,谢谢大家~~~。