数据存储知识点总结

1. 什么是谓词?

答案:谓词是通过NSPredicate,是通过给定的逻辑条件作为约束条件,完成对数据的筛选。

predicate = [NSPredicate predicateWithFormat:@"customerID == %d",n];a = [customers filteredArrayUsingPredicate:predicate];


2. 什么是数据持久化?简单谈⼀一下你所了解的IOS中的数据持久化的⽅方式。

数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、⼆二进制流等。在IOS中,少量的数据持久化可以使⽤用属性列表、NSUserDefaults、归档等;⼤大量的数据持久化可以使⽤用SQLite数据库、Core Data等,也可以使⽤用FMDB第三⽅方类库完成。


3.NSUserDefaults?

NSUserDefaults适合存储轻量级的本地数据,以键值对的形式进⾏行存储,只能存储基本的OC对象(不包括⾃自定义的对象)。

NSUserDefaults⾮非常好⽤用,并不需要⽤用户在程序中设置NSUserDefaults的全局变量,需要在哪⾥里使⽤用NSUserDefaults的数据,那么就在哪⾥里创建⼀一个NSUserDefaults对象,然后进⾏行读或者写操作。

针对同⼀一个关键字对应的对象或者数据,可以对它进⾏行重
写,重写之后关键字就对应新的对象或者数据,旧的对象
或者数据会被⾃自动清理。

NSUserDefaults是典型的单例模式。


4. Protocol List

属性列表,是⼀一种⽤用来存储串⾏行化后的对象的⽂文件。因为扩展名为plist ,因此通常被称为 plist⽂文件。


plist⽂文件通常⽤用于储存⽤用户设置,也可以⽤用于存储捆绑的信息,其内容为xml格式。它可以在程序运⾏行期间动态的创建和读写,因此可以⽤用于少量数据时候的数据持久化。


5. 归档?优缺点?

归档也叫序列化,是将⽂文件存在硬盘,解档是从硬盘还原
数据。
归档的形式来保存数据,只能⼀一次性归档保存以及⼀一次性
解压。所以只能针对⼩小量数据,⽽而且对数据操作⽐比较笨
拙,即如果想改动数据的某⼀一⼩小部分,还是需要解压整个
数据或者归档整个数据。
除了简单的归档,还可以实现对象的归档。对象归档是指
对象写⼊入⽂文件保存到硬盘上,当再次重写打开程序时,可
以还原这些对象。可以实现对象序列化或者对象持久化。

除了原有的OC对象以外,归档还可以对⾃自定义的对象实现归档,需要注意的是,⾃自定义的归档对象必须要实现NSCoding协议,实现⾥里⾯面的解码和编码的⽅方法。


6. 什么是数据库?使⽤用步骤?特点?

数据库是按照数据结构来组织、存储和管理数据的仓库。

SQLite使⽤用步骤:创建数据库、引⼊入类库、获得沙盒路径、创建或打开数据库

SQLite⽐比较原始,需要通过sql语句来创建表格,对数据进⾏行操作,⽤用起来⽐比较⿇麻烦,但是可控性强。


7. Core Data

Core Data是ios3以后引⼊入的数据库持久化解决⽅方案,是苹果官⽅方推荐的,在使⽤用的过程中不需要写sql语句,可以很⽅方便的将数据存储到数据库中。正因为不需要要写sql语句,具体的功能已经被封装好了,因此可控性要弱⼀一些。


8. 数据持久化⽅方⾯面⽤用过哪些第三⽅方类库?

FMDB,以OC的⽅方式封装了SQLite的C语⾔言的API。优点:1. 更加⾯面向对象,省去了很多冗余的C代码;
2. 对⽐比苹果⾃自带的CoreData框架,更加灵活和轻量级;

3. 提供了多线程安全的数据库操作⽅方法,能有效的防⽌止数据混乱。


9. XML 可扩展标记语⾔言extensible markup language

XML⽤用于标记电⼦子⽂文件使其具有结构性的标记语⾔言,可以⽤用来标记数据、定义数据类型,是⼀一种允许⽤用户对⾃自⼰己的标记语⾔言进⾏行定义的源语⾔言。

数据库提供了更强有⼒力的数据存储和分析能⼒力,例如:数据索引、排序、查找、相关⼀一致性等,XML仅仅是存储数据。


XML与HTML的设计区别?

XML的核⼼心是数据,其重点是数据的内容。⽽而HTML被设计⽤用来显⽰示数据,其重点是数据的显⽰示。


XML和HTML语法区别?

HTML的标记不是所有的都需要成对出现,XML则要求所有的标记必须成对出现;

HTML标记不区分⼤大⼩小写,XML则⼤大⼩小敏感,即区分⼤大⼩小写。


XML

1:可扩展的标记语言,存储数据,
2:文档组成:文档声明,元素,属性,文档的最前面必须有一个文档声明
3:元素:一个元素包括了开始标签和结束标签;可以嵌套0-多个子元素,只有一个根元素
4:属性:一个元素可以包含多个属性,属性值必须用双引号“”或者单引号扩住
5:和html语言的区别:1:XML是核心的是数据,HTML重点是数据的显示,2:XML所有标记必须成对出现,HTML的标记不是所有都需要成对出现3:XML区分大小写,HTML不区分大小写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值