一、我们昨天讲了NSString类,
1.NSString类,它其实是存储我们的字符串对象,关于NSString类,你需要掌握如下几点,第一个:
1)NSString类的本质:是1个类
2)初始化:@“jack”,要知道,这个的本质是什么,这其实是个什么,是1个NSString对象
3)字符串的恒定性
4)NSString最常用的5个方法:
i. stringWithFormat
ii. length
iii. characterAtIndex
iv. isEqualToString
v. strWithUTF8String
5)NSString的其他方法:
i. str.UTF8String
ii. writeToFile
iii. stringWithContentsOfFile
iv. URLWithString (这是URL的方法)
v. stringWithContentsOfURL
vi. writeToURL
vii. compare
viii. compare options:NSCaseInsensitiveSearch
ix. compare options:NSNumericSearch
x. hasPrefix
xi. hasSuffix
xii. rangeOfString
xiii. NSMakeRange (这是Range的方法)
xiv. substringFromIndex
xv. substringToIndex
xvi. substringWithRange
xvii. stringByReplacingOccurrencesOfString
xviii. str.intValue
xix. stringByTrimmingCharactersInSet
xx. uppercaseString
xxi. lowercaseString
xxii. stringByTrimmingCharacterInSet:[NSCharacterSet lowercaseLetterCharacterSet]
xxiii. stringByTrimmingCharacterInSet:[NSCharacterSet uppercaseLetterCharacterSet]
xxiv. stringByTrimmingCharacterInSet:[NSCharacterSet characterSetWithCharactersInString:@“jing”]
xxv. appendString (这是NSMutableString的方法)
xxvi. appendFormat (这是NSMutableString的方法)
2.NSMutableString类
1)NSMutableString类,是NSString类的子类
2)可变
3)使用场景:大批量的字符串拼接的时候
3.NSArray类
1)数组
2)特点:
i. 只能存储OC对象
ii. 长度固定
3)创建 取出 遍历 其他的常用
4.NSMutableArray类
1)是NSArray类的子类
2)元素可以新增和删除
5.NSNumber类
二、NSArray的持久化
1.例如,我这儿有一个NSArray
NSArray *arr = @[@“jack”,@“rose”,@“lili”,@“Lucy”];
for(NSString *str in arr)
NSLog(@“%@”,str);
输出:jack
rose
lili
Lucy
2.这样就可以把数组中的每一个元素的值输出来了吧,
但是有一个问题,我这个程序结束以后,这个数组中的元素,还在不在,不在了,我程序结束以后,这个数组还在不在,不在了,
那我就有一个想法了,我能不能把数组中的元素保存起来
3.将数组的信息(数组的元素的值)保存起来,保存在磁盘上,下次我程序再运行的时候,我再把它还原回来
数据持久化
数组对象有1个方法,叫做writeToFile
[arr writeToFile:(nonnull NSString *) atomically: (BOOL)];
这个方法做了什么事情,把这个arr数组写入到1个文件里面去
好,给个路径,/Users/Apple/Desktop/abc.
记住,如果是数组,这个后缀名,你给个plist
/Users/Apple/Desktop/abc.plist
plist文件,是1个属性列表文件,
这个atomically:需不需要先写入临时文件,如果成功,再移动道目标路径,给个NO
NSLog(@“YES”);
打印1个YES吧
运行一下,在/Users/Apple/Desktop/路径下,出现了一个abc.plist文件,
打开看一下啊,双击
出来4个元素,上面还有一个Root,这个Root是个什么类型的,Array,那就说明咱们这个文件里保存的是1个数组,这个数组里面有几个元素,4个,哪4个元素,
item 0 :就是第0个元素,第0个元素什么类型的,String类型的,值是什么啊,jack,
item 1 : String类型的,值是rose
item 2 : String类型的,值是lili
item 3 : String类型的,值是Lucy
你看,它就用文件的方式,把它保存起来了
4.plist文件:属性列表文件
这个文件可以保存数组,把数组中的元素,保存在这个文件中
三、存起来之后,我能不能读出来呢,能不能把这个文件还原成1个数组呢
1.还原1个数组:
NSArray *arr = [NSArray arrayWithContentsOfFile:(non null NSString *)];
这个方法的名字叫做:arrayWithContentsOfFile
这个方法的签名如下:
+ (NSArray *)arrayWithContentsOfFile:(NSString *)file];
是不是给它1个文件路径:
[NSArray arrayWithContentsOfFile:@“/Users/Apple/Desktop/abc.plist”];
这句话一执行,它就会把这个plist文件里面保存的数组还原回来,还原到这个arr数组里面去,
for(NSString *str in arr){
NSLog(@“%@”,str);
}
我输出一下,看看能不能输出出来
输出:jack
rose
lili
Lucy
2.那我能不能把plist文件改一下,是不是本来有4个元素,
我在文件里加一个:
item 4 : String类型的,lilei
item 5 : String类型的,poly
Ctrl + S 保存一下
这时候,我再读:
输出:
jack
rose
lili
Lucy
lilei
poly
3.所以,这个原理,是这样的:
1)第一步,将数组的信息存储到plist文件中,就会将数组的所有的元素存储到这个文件中,这个方法叫做writeToFile,这个方法的签名如下:
– (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
这个方法的作用,就是将数组存进去
2)第二步,读出来,将plist文件中的数据还原为1个数组,这个方法叫做arrayWithContentsOfFile,这个方法的签名如下:
+ (nullable NSArray< ObjectType> *)arrayWithContentsOfFile:(NSString *)path;
这个nullable什么意思啊,它返回的值,可能为空,可能为nil,
如果你这个路径写错了,返回值就是nil了,
所以,你要判断它到底有没有读取成功,你就只需要判断一下,
if(arr != nil){
NSLog(@“读取成功”);
for(NSString *str in arr){
NSLog(@“%@”,str);
}
}
else
{
NSLog(@“读取不成功”);
}
读取成功之后,我就把它输出,就可以了,
就这两个方法,需要你掌握,因为怎么说呢,这个方法我们后面天天用,
为什么天天用,大家思考一下,我们用这两个方法,能够实现的功能是什么呢,是不是可以把程序运行期间的数据给它永久保存起来啊,
如果你像我们之前,都是用变量来保存数据的话,程序一运行完,是不是数据就没有了啊,如果我下次再想把那个数据再拿出来呢
所以,有些数据,我想永久保存,比如,我举个例子给你啊
我们要做一个聊天软件,我想把聊天记录永久保存起来,明白我的意思吧,你想想,按照我们之前的写法,我用个变量,是不是把聊天记录都保存在变量里面啊,或者放在数组里面啊,那么很明显啊,你程序一退出,聊天记录绝对没了啊,下次如果,你下次再执行程序的时候,可不可能把上次的那个聊天记录拿出来啊,不可能的啊,那怎么办,
对了,每次在你退出程序的时候,或者说,我每隔十分钟,或者每隔五分钟,或者说,你每发一条消息,我就把你发的这条消息,记录起来,存起来,用这种方式啊,存起来,
然后呢,下次我启动程序的时候,我怎么样,我再读出来,然后再还原回去,不就可以了嘛,
所以它最大的特点,在于持久化数据,可以把数据永久的保存下来
原文地址:https://blog.csdn.net/madoca/article/details/127802385
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38742.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。