数据存储

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

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

1> 增加表字段

ALTER TABLE 表名 ADD COLUMN 字段名 字段类型

2> 删除表字段

ALTER TABLE 表名 DROP COLUMN 字段名

3> 修改表字段

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


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

1> 添加SQLite动态库——libsqlite3.dylb

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

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


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

1> 缓存可以分为:内存数据缓存、数据库缓存、文件缓存

2> 每次想获取数据的时候:

     a、先检测内存中有无缓存

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

     c、最终发送网络请求

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

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

CoreData性能并没有SQL好

1> CoreData是对SQLite数据库的封装(SQLite是C语言,CoreData是OC语言)

 --NSManagedObject:实体对象(一个类对应一张表,一个对象对应表中的一条记录)

 --NSPersistentStoreCoordinator:存储器,决定了你的数据存储在什么地方(SQLite、     

    XML、其他文件)

 --NSManagedObjectContext:操作数据库(是一个单例)

2> CoreData中的NSManagedObjectContext在多线程中不安全,如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据存储 sqlite中插入特殊字符的方法和接收到处理方法。 除’其他的都是在特殊字符前面加“/”,而 ' -> ...
    b485c88ab697阅读 7,379评论 2 32
  • 1. 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData? 编写SQL语句来操作原来表中的字段1>...
    雪丹妮_66865阅读 132评论 0 1
  • 1. 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段:...
    KyneChen阅读 943评论 0 6
  • 1.如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段 1...
    简了个书呗阅读 284评论 0 0
  • 这是一件非常有趣的事情,想了7天,最后写下了这些: 【姓名】李宛彤 【昵称】宛彤 【坐标】海南琼中,家乡湖南汨罗。...
    李Polly阅读 233评论 2 1