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

iOS开发之CoreData数据存储 参考资料:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html http://www.objc.io/issue-4/…
iOS应用数据存储的常用方式(持久化方式) 属性列表(plist)归档(XML文件) Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 属性列表(plist)归档(XML文件) 属性列表是一种XML格式的文件,拓展名为plist. 如果对象是NSString.NSDictionary.NSArray.NSData.NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文…
最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application security的文章. 个人感觉写的还不错,实用性比较强,加之阅读难度不大,于是趁着工作日无聊之际,小翻译了一篇. 原文IOS Application Security Part 20 – Local Data Storage (NSUserDefaults, CoreData, Sqlite, Plist…
iOS 开发中,一般有如下几种数据存储方式.需要根据具体的业务场景,选择 合适的数据存储方式. (1)  用户默认设置 – 这种情况通常不需要用户干预,如游戏通关信息,Video 播放记录,或者 App 退出之后,下次进入时,希望恢复到退出时的情况. (2)  设置束(Settings Bundle)-- 提供了一个通过 iPhone.iPad 的设置 (Settings)应用程序进行配置的接口. (3)  直接访问文件系统 – 读写属于当前 App 的 iOS 文件系统部分的文件. (4)  …
时间久了容易忘,针对沙盒的相关实用技巧做一个记录和整理. 一.iOS数据存储常用方式 1.XML属性列表(plist) 不是所有对象都可以写入: 2.Preference(偏好设置) 本质还是通过“plist”来存储数据,但是使用简单(无需关注文件.文件夹路径和名称): 3.NSKeyedArchiver归档(NSCoding) 把任何对象,直接保存为文件的方式: 4.SQLite3 当非常大量的数据存储时使用: 5.CoreData 就是对SQLite的封装. 本文只做前三种研究 二.沙盒概述…
IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用到的实例对象. 这个对象中储存了系统中用户的配置信息,开发人员能够通过这个实例对象对这些已有的信息进行改动.也能够依照自己的需求创建新的配置项. 他实际上是存储于文件沙盒中的一个.plist文件,而且没有被系统加密,仅仅是ios6以后不是存于经常使用的文档文件夹下,所以不破解系统是看不到该文件的.所…
1.如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 回答:编写SQL语句来操作原来表中的字段 1>增加表字段 ALETER TABLE 表名 ADD COLUMN 字段名 字段类型: 2>删除表字段 ALETER TABLE 表名 DROP COLUMN 字段名 3>修改表字段 ALETER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名 2.SQLite数据存储是怎么用? 回答: 1>增加SQLite动态库:libsqlite3.d…
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)创建对私有⽅法的前向引⽤.…
在面试的时候,面试官问我,“你对内存管理了解的多吗?” 我忘了当时是怎么回答的了,但是,肯定是一时没想起来怎么回答. 1.谁创建谁释放 2.autoreleasepool 3.retain,copy,new都会增加一次计数,release,会让计数减一 深拷贝和浅拷贝 copy和retain: copy是创建一个新的对象,retain是创建一个指针,引用对象计数加1.copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有发生变化.copy减少对象对上下…
Getting Default Values arrayForKey(_:) boolForKey(_:) dataForKey(_:) dictionaryForKey(_:) floatForKey(_:) integerForKey(_:) objectForKey(_:) stringArrayForKey(_:) stringForKey(_:) doubleForKey(_:) URLForKey(_:) Setting Default Values setBool(_:forKey…