iOS积累iOS 面试

iOS | 面试知识整理 - 数据持久化(八)

2019-08-20  本文已影响0人  Leon_520

前言:

最近公司项目不怎么忙, 闲暇时间把iOS 在面试中可能会遇到的问题整理了一番, 一部分题目是自己面试遇到的,一部分题目则是网上收录的, 方便自己巩固复习, 也分享给大家! 知识点比较多,比较杂,这里做了分类,下面是分类链接地址;

面试知识点整理 - 目录:

iOS | 面试知识整理 - OC基础 (一)
iOS | 面试知识整理 - OC基础 (二)
iOS | 面试知识整理 - OC基础 (三)
iOS | 面试知识整理 - UI 相 关 (四)
iOS | 面试知识整理 - 内存管理 (五)
iOS | 面试知识整理 - 多 线 程 (六)
iOS | 面试知识整理 - 网络相关 (七)
iOS | 面试知识整理 - 数据持久化 (八)
iOS | 面试知识整理 - Swift基础 (九)

iOS | 面试知识整理 - 数据持久化(八)

1. iOS中数据持久化方案有哪些?

2. 什么是序列化和反序列化,用来做什么

3. OC中实现复杂对象的存储

4. SQLite 数据存储是怎么用?

5. CoreData是什么?

6. 简单描述下客户端的缓存机制?

  1. 缓存可以分为:内存数据缓存、数据库缓存、文件缓存
  2. 每次想获取数据的时候
  3. 先检测内存中有无缓存
  4. 再检测本地有无缓存(数据库\文件)
  5. 最终发送网络请求
  6. 将服务器返回的网络数据进行缓存(内存、数据库、文件), 以便下次读取

7. 什么是NSManagedObject模型?

NSManagedObjcet是NSObject的子类,Core Date的重要组成部分。是一个通用类,实现了Core Date模型层所需的基本功能,用户可以通过NSManagedObjcet建立自己的数据模型。

8. 说一说你对SQLite的认识

9. 说一说你对FMDB的认识

10. 什么是沙盒机制?

11. 沙盒目录结构是怎样的?

沙盒结构

12. 使用 NSUserDefaults 时,如何处理布尔的默认值?(比如返回 NO,不知道是真的 NO 还是没有设置过)

13. 代码题目分析,打印结果是什么?

NSUserDefaults *userdefault = [NSUserDefaults standardUserDefaults];
BOOL flag = NO;
[userdefault setObject:@(flag) forKey:@"flag"];

if ([userdefault objectForKey:@"flag"]) {
    BOOL eq = [userdefault objectForKey:@"flag"];
    if (eq) {
        NSLog(@"a");
    }else{
        NSLog(@"b");
    }
}else{
    BOOL eq = [userdefault objectForKey:@"flag"];
    if (eq) {
        NSLog(@"c");
    }else{
        NSLog(@"d");
    }
}

打印结果 a
分析: 包装成 oc 对象,OC对象有值,转 bool 都是 yes

11. 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢?

14.FMDB使用 线程与事务

  1. FMDatabaseQueue 使用该类保证线程安全,串行队列
  2. 事物是一个并发控制的基本单元,所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。

15.xml 和 json 区别

17.什么是事务?

18. 熟悉常用SQL语句

create database name
drop database name
alter table name add column col type
select * from table1 where col=value
select count as totalcount from table1
select sum(field1) as sumvalue from table1
'insert into table1 (field1,field2) values(value1,value2) '
delete from table1 where something
update table1 set field1=value1 where field1 like ’%value1%'

参考:http://www.cnblogs.com/acpe/p/4970765.html

19.当数据库中的某项数据未 null 时候,通过FMDB获取的数据为

[NSNull null]

下一篇入口:

iOS | 面试知识整理 - Swift基础 (九)

上一篇 下一篇

猜你喜欢

热点阅读