iOS技术面试04:数据存储
- 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢?
编写SQL语句来操作原来表中的字段
1> 增加表字段
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;
2> 删除表字段
ALTER TABLE 表名 DROP COLUMN 字段名;
3> 修改表字段
ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名;
- SQLite数据存储是怎么用?
1> 添加SQLite动态库:
2> 导入主头文件:#import <sqlite3.h>
3> 利用C语言函数创建\打开数据库,编写SQL语句
- 简单描述下客户端的缓存机制?
- 缓存可以分为:内存数据缓存、数据库缓存、文件缓存
- 每次想获取数据的时候
1> 先检测内存中有无缓存
2> 再检测本地有无缓存(数据库\文件)
3> 最终发送网络请求
4> 将服务器返回的网络数据进行缓存(内存、数据库、文件), 以便下次读取
- 你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?
1> CoreData是对SQLite数据库的封装
2> CoreData中的NSManagedObjectContext在多线程中不安全
3> 如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext
4> 每个NSManagedObjectContext对象实例都可以使用同一个NSPersistentStoreCoordinator实例,这是因为NSManagedObjectContext会在便用NSPersistentStoreCoordinator前上锁
5 什么是数据持久化?
plist,偏好设置,键值归档,sqlite3,core data五种。前面4种,都只是存oc类型的对象数据,比如:NSNumber NSString NSData NSArray NSDictionary等,而数据库呢,首先是查有没有那个库,没有则创建一个库,
然后在库里面创建表,在表里面再进行具体的数据存储,最后还要关闭数据库,数据库一般是用c写,但苹果他有自己的一个库,就叫fmdb ,是oc 版本的,
用起来更加面相对象,也是c 封装后的,前面4种都是普通对象类型,而core data不是,可以存的范围很广,但不太好操作,稳定性差,不是一个库,只是一个文件罢了
6数据传值怎么传,又有哪些方式?
block,通知,代理,属性,单例等。
iOS技术面试04:数据存储的更多相关文章
- iOS开发之CoreData数据存储
iOS开发之CoreData数据存储 参考资料:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreD ...
- iOS APP之本地数据存储(译)
最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application secur ...
- iOS技术面试08:其他
1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的 ...
- iOS学习之应用数据存储1-属性列表、偏好设置、NSKeyedArchiver归档
iOS应用数据存储的常用方式(持久化方式) 属性列表(plist)归档(XML文件) Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core ...
- 怎样实现IOS开发中的数据存储方式
iOS 开发中,一般有如下几种数据存储方式.需要根据具体的业务场景,选择 合适的数据存储方式. (1) 用户默认设置 – 这种情况通常不需要用户干预,如游戏通关信息,Video 播放记录,或者 Ap ...
- iOS沙盒及数据存储
时间久了容易忘,针对沙盒的相关实用技巧做一个记录和整理. 一.iOS数据存储常用方式 1.XML属性列表(plist) 不是所有对象都可以写入: 2.Preference(偏好设置) 本质还是通过“p ...
- IOS的四种数据存储方式及优劣
IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用 ...
- iOS技术面试01:多线程与网络
1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程.多线程的使用场合(线程有时被称为轻量级进程,是程序执行流的最小单元.多线程是指软件或者硬件实现多个线程并发执行的技术.多线程的 ...
- iOS技术面试07:第三方框架
1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio. ...
随机推荐
- Unity Platform Differernces
https://docs.unity3d.com/560/Documentation/Manual/SL-PlatformDifferences.html
- Makefile:248: /usr/local/otp_src_18.1/make/x86_64-unknown-linux-gnu/otp_ded.mk: No such file
安装erlang的时候,使用make命令一直报这个错 Makefile:248: /usr/local/otp_src_18.1/make/x86_64-unknown-linux-gnu/otp_d ...
- springMvc--接受请求参数
作者:liuconglin 接收基本类型 表单: <h1>接受基本类型参数到Controller</h1> <form action="/param/test& ...
- [Dart] Capture and Handle Data Sequences with Streams in Dart
Streams represent a sequence of asynchronous events. Each event is either a data event, also called ...
- Linux 防火墙开放端口(有时不生效可能是没有保存、重启导致)
原创 Centos7--防火墙(Firewall)开启常见端口命令 2018-05-22 20:19:51 午夜阳光psb 阅读数 7396更多 分类专栏: Linux 版权声明:本文为博主原创文章, ...
- sql server 存储过程中,调用事务 tran
Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示 ...
- iwap问题
1. 2. . . ========================================================================================== ...
- Educational Codeforces Round 60 D. Magic Gems
易得递推式为f[i]=f[i-1]+f[i-M] 最终答案即为f[N]. 由于N很大,用矩阵快速幂求解. code: #include<bits/stdc++.h> using names ...
- 实验1C语言开发环境使用和数据类型、运算符、表达式
# include <stdio.h> int main() { char ch; printf("输入一个字符:\n"); scanf("%c", ...
- vue点击父组件里面的列表动态传值到子组件
<template> <div> 爸爸 <div style="background-color:yellow;margin-top:10px" v- ...