1.3.3有限的访问权限
计算机上的程序可以访问属主用户(启动这个程序的用户)能够访问的任何内容。然而,iOS严格限制了应用程序的访问权限。
iOS的文件系统会为每个应用分配一块独立的区域,这块区域称为沙盒,每个应用只能对自己沙盒内的文件进行读写。沙盒就是应用用于存储文档、首选项等任何必要数据的地方。
应用程序还会受到其他方面的限制。比如,不能访问iOS中端口号较小的网络端口,也不能做那些在台式机中需要有根用户权限或管理员权限才能进行的操作。
1.3.4有限的响应时间
由于使用方式特殊,iOS需要能够快速响应各种事件,你的应用程序也应如此。启动应用程序时,需要先打开它,载人首选项和数据,并尽快把主视图显示到屏幕上,这些过程要在几秒钟内全部完成。
在应用程序运行中的任何时刻,都可以通过双击Home键查看最近使用的应用列表。如果用户按Home键,iOS就会返回主屏幕,应用必须快速保存一切内容并退出。如果没有在5秒之内保存必要的数据并放弃对系统资源的控制,无论是否已经保存完成,应用程序进程都会被终止。有一个API可以在应用程序终止前申请多一些的时间来完成必要的工作。你必须知道如何使用它才行。
1.3.5有限的屏幕大小
iPhone的屏幕显示效果非常出色,在相当长的一段时间里,iPhone一直都是市场上分辨率最高的掌上电子设备。
但是,iPhone的显示空间并不大,与现代计算机相比,在iPhone上能使用的屏幕空间要小很多。最初几代的iPhone屏幕分辨率只有320像素×480像素,后来,从iPhone4的视网膜屏幕开始,分辨率增加到了640像素x960像素。iPhone5的分辨率进一步提高到了640像素×1136像素。像素数量有了极大的提高,但是屏幕的显示空间却没有大的变化,因此还是不能在屏幕上摆放更多的控件之类。小屏幕极大地影响了i’Phone所能提供的应用种类和交互性。
iPad的分辨率是1024像素×768像素,显示空间也增加了,但也不是非常大。下面来做一个有趣的对比,写作本书时,苹果最便宜的iMac的分辨率是1920像素×1080像素,最便宜的笔记本电脑(11寸的MacBookAir)的分辨率是1366像素×768像素,而苹果最大的显示器是27英寸的LED(2inemaDisplay则支持高达2560像素×1440像素的超高分辨率。请注意,对于iPad而言,如果不出意外的话,往后的iPad机型(iPad2以后的全尺寸iPad以及iPadMiniRetina)都将配备视网膜屏幕,横竖两个方向的分辨率都加倍了。但是,跟视网膜屏幕的iPhone一样,这块2048像素×1536像素的屏幕的实际尺寸跟旧屏幕一样,仍无法像在传统的屏幕上那样使用这些像素。
……