zoukankan      html  css  js  c++  java
  • 面试题01-数据存储

    1。如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?
    编写 SQL 语句来操作原来表中的字段
    1)增加表字段
    ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;
    2)删除表字段
    ALTER TABLE 表名 DROP COLUMN 字段名;
    3)修改字段名
    ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名;

    2.。SQLite 数据存储怎么用?
    1)添加 SQLite 动态库:libsqlits3.dylib
    2)导入主头文件,:#import <sqlite3.h>
    3)   利用C语言函数创建打开数据库,编写 SQL 语句

    3.。简单描述下客户端的缓存机制?
      1.缓存可以分为:内存数据缓存、数据库缓存、文件缓存。
      2.每次想获取数据的时候
      1)先检测内存中有无缓存
      2)在检测本地有无缓存(数据库文件)
      3)最终发送网络请求
      4)将服务器返回的网络数据进行缓存(内存、数据库、文件),以便下次读取

    4.你实现过多线程的 CoreData 么?NSPersistentStoreCoordinator,NSManagedObjectContext 和 NSManagedObject 中的那些需要在线程中创建或传递?你是用什么样的策略来实现的?
    1)CoreData 是对 SQLite 数据库的封装
    2)CoreData 中的 NSManagedObjectContext在多线程中不安全
    3)如果想要多线程访问 CoreData 的话,最好的方法是一个线程一个NSManagedObjectContext
    4)每个 NSManagedObjectContext 对象实例都可以使用同一个 NSPerisistentStoreCoordinator 实例,这是因为 NSManagedObjectContext 会在使用 NSPersistentStoreCoordinator 前上锁
    【Person:NSManagedObject:实体对象(1一个类对应了1张表,一个对象对应表中的1条记录)
    NSPersistentStoreCoordinator:存储器,决定了你的数据存储在什么地方(SQLiteXML其他文件)
    NSManagedObjectContent:操作数据库 】

    5)CoreData 数据迁移
    http://blog.csdn.net/jasonblog/article/details/17842535

  • 相关阅读:
    TV 丽音(NICAM)功能
    TV TimeShift和PVR的区别
    VGA、DVI、HDMI三种视频信号接口
    单词记忆
    gdb调试的基本使用
    Shell中字符串的切割、拼接、比较、替换
    I2C通信基本原理及其实现
    为什么单片机需要时钟系统,时钟信号在单片机中扮演怎样的角色?
    HDMI热插拔检测原理
    HDMI接口之HPD(热拔插)
  • 原文地址:https://www.cnblogs.com/quwujin/p/4954150.html
Copyright © 2011-2022 走看看