前面讲沙盒目录的时候说过,iOS应用都是被一个小箱子锁起来的独立个体,里面的数据出不来,外面的数据进不去,除了某些特殊的情况。博客传送门
我们在开发App的时候可以预留一些Api用来与其他应用进行交互,而对于系统应用来说,比如地图,相册,照相机这些预装应用,苹果也为我们提供了一些工具来访问它们。
那怎么做呢?
PS:以下代码大部分均需在真机上调试才有效果。
Nothing is impossible!
前面讲沙盒目录的时候说过,iOS应用都是被一个小箱子锁起来的独立个体,里面的数据出不来,外面的数据进不去,除了某些特殊的情况。博客传送门
我们在开发App的时候可以预留一些Api用来与其他应用进行交互,而对于系统应用来说,比如地图,相册,照相机这些预装应用,苹果也为我们提供了一些工具来访问它们。
那怎么做呢?
PS:以下代码大部分均需在真机上调试才有效果。
数据持久化又称数据序列化,指的是一种将数据长久的保存起来的方式。
一般我们保存数据的方式都是将数据保存在本地磁盘上或者是服务器上。对比内存中的数据来说,更安全,也不易丢失。
以下列举了几种常见的保存数据的方式,每种方式各有优缺点,使用的时候我们可以根据数据的大小类型格式要求等综合考虑。
iOS应用程序的所有数据都是保存在沙盒目录的,那么什么是沙盒目录?它的作用是什么?
每个应用程序存储在手机上,这些程序都是由苹果系统去管理的。为了防止应用程序相互破坏,相互影响,苹果为每个应用程序,创建了一个保险箱。一个程序在一个保险箱里,这个保险箱就是沙盒目录。
它的作用是:
也就是说,在苹果手机上的两个应用,他们的数据是不能共享的,你再也无法使用迅雷下载一个视频然后使用优酷打开播放。当然,我们可以通过苹果官方提供的一些有限接口,来访问相册,电话簿,短信, 地理位置等应用,甚至在被授权的情况下,和其他应用程序进行有限的交互,但这些交互是有限的,且建立在双方信任允许的前提下。
移动应用在请求网络数据时,为了提高应用性能,节省流量,一般都会做数据缓存处理。最常见的就是图片和视频缓存,目前很流行的图片处理框架SDWebImage便自带图片缓存。
对于阅读、资讯类App来说,数据缓存和清理缓存几乎是必不可少的两种功能。
关于缓存,系统提供了NSFileManager API来方便我们管理,这里介绍这两种功能的简单实现(以普通文件格式存储在沙盒目录)。
Masonry是AutoLayout的一个第三方类库,也是目前最流行的AutoLayout框架。熟练使用Masonry进行页面布局,能够减少很多不必要的宽高坐标值计算。
最近接触了用到constraint的动画,写的时候遇到了一点问题,于是整理研究了一些关于UIView布局的layout方法,这里分享给大家,对于控件的约束,这里用到的是目前比较流行的Masonry库。