iOS面试题02-数据存储

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

回答:编写SQL语句来操作原来表中的字段

1>增加表字段

ALETER TABLE 表名 ADD COLUMN 字段名 字段类型;

2>删除表字段

ALETER TABLE 表名 DROP COLUMN 字段名

3>修改表字段

ALETER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名

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

回答: 1>增加SQLite动态库:libsqlite3.dylib

2>导入主头文件:#import <sqlite3.h>

3>利用C语言函数创建/打开数据库,编写SQL语句

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

回答:1.缓存可以分为:内存数据缓存、数据库缓存、文件缓存

2.每次想获取数据的时候

1>先检测内存中有无缓存

2>再检测本地有无缓存(数据库/文件)

3>最终发送网络请求

4>将服务器返回的网络数据进行缓存(内存、数据库、文件)以便下次读取

4.你实现过多线程的Core Data么?NSPersistenStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?

回答:1>CoreData是对SQLite数据库的封装

2>CoreData中的NSManageredObject在多线程中不安全

    3>如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext

4>每个NSManagedObjectContext对象实例都可以使用同一个NSPersistentStoreCoordinator实例,这是因为NSManagedObjectContext会在使用NSPersitentStoreCoordinator前上锁

   附: FMDB:OC封装C语言的SQLite,编写SQL语句

      CoreData:OC封装C语言的SQLite,不用编写任何SQL语句,自动根据对象类型和属性名生成对应的SQL语句

5.Core Data数据迁移

具体可以看这篇博客:http://blog.csdn.net/jasonblog/article/details/17842535

时间: 2024-10-09 03:31:08

iOS面试题02-数据存储的相关文章

三种iOS应用程序用户数据存储方法

本文通过偏好设置,plist文件,归档解档三种方法来演示iOS应用程序用户数据存储机制. 首先,我们创建一个Person类,并定义三个成员属性,用来存储数据 @property (nonatomic,copy) NSString *name; @property (nonatomic,assign)NSInteger age; @property (nonatomic,assign)BOOL isTrue; 一.通过偏好设置 1.通过偏好设置存储数据 //获取偏好设置的对象 NSUserDefa

iOS 常用四种数据存储方式

iOS 常用四种数据存储方式 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅, ,使得用户体验更好.下面介绍?一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前?一个方法告诉系统怎么对对象进行编码,而后?一个方法则是告诉系统怎么对对象进行解码.例如对Possession对

IOS NSUserDefaults-轻量级本地数据存储

IOS NSUserDefaults-轻量级本地数据存储 IOS 针对用户数据持久化处理提供了多种处理方式:NSUserDefaults.plist 以及 sqlite3 数据库 都是很不错的选择! NSUserDefaults 是一种轻量级本地数据存储,操作方便,但仅支持Bool.Float.NSInteger.Object.Double.Url 这六种数据类型的存储 NSUserDefaults 提供了添加.读取以及移除等方法,供开发者调用,具体示例如下: GNSUserDefaults.h

学习IOS开发UI篇--数据存储

iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) 4.lSQLite3 5.lCore Data Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时

IOS的四种数据存储方式及优劣

IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用到的实例对象. 这个对象中储存了系统中用户的配置信息,开发人员能够通过这个实例对象对这些已有的信息进行改动.也能够依照自己的需求创建新的配置项. 他实际上是存储于文件沙盒中的一个.plist文件,而且没有被系统加密,仅仅是ios6以后不是存于经常使用的文档文件夹下,所以不破解系统是看不到该文件的.所

iOS狂暴之路---iOS中应用的数据存储方式解析

一.前言 前面一篇文章中已经介绍了iOS应用中的视图控制器知识点,而本文不会按照常理来介绍View的知识点,而是先介绍iOS中的数据存储知识点,因为关于View的知识点太多了,后面会连续详细介绍一下.这篇先来看一下iOS中的数据存储功能分析.每一个iOS应用和Android应用一样,都有其对应的沙盒存储自己的数据,但是iOS和Android有一个区别就在于没有SD卡的概念了,也就说在iOS中应用的数据只能保存到自己的沙盒中.这也可以看出来iOS为了应用的安全考虑. 在开发Android的时候都知

IOS的四种数据存储方式和优略

IOS有四种常用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息,它通过一个工厂方法返回默认的.也是最常用到的实例对象.这个对象中储存了系统中用户的配置信息,开发者可以通过这个实例对象对这些已有的信息进行修改,也可以按照自己的需求创建新的配置项.他在IOS6之后已经在文件沙盒中看不到它的信息了,所以可以存储机密信息(用户名和密码)密码,防止手机系统被破解后看你的沙盒子文件.一般这种方法存储少量信息,若是存储大量

iOS开发-私人通讯录-数据存储和编辑模式

UI界面 -(void)viewDidLoad{ [super viewDidLoad]: //addTarget:一般用于监听按钮的点击 以及进度条值的改变 //通过通知监听UITextField的改变 /* addObserver:谁来监听 selector:通知发生的时候调用什么方法 name:通知名称 object:谁发送的通知 注意:object不能写nil,因为如果是nil只要是UITextField发生改变都会调用textChange方法,而我们只在账号和密码输入框发生改变的时候才

iOS笔试题02

1. Difference between shallow copy and deep copy? 1> 浅拷贝:指针(地址)拷贝,不会产生新对象 2> 深拷贝:内容拷贝,会产生新对象 2. What is advantage of categories? What is difference between implementing a category and inheritance? 类别主要有3个作?:(1)将类的实现分散到多个不同?件或多个不同框架中.(2)创建对私有?法的前向引?.