iPhone 4与iPad开发基础教程——笔记(1)
编写iOS的有何不同
1、只有一个应用程序正在运行
特定时间段仅仅激活一个应用程序并在屏幕上显示。
当应用程序未激活或未运行于后台时,不会引起CPU任何注意,可能会导致网络连接断开等问题。iOS 4在后台处理能力已经有了大幅提升。
2、只有一个窗口
只允许应用程序操作一个“窗口”。应用程序与用户的的所有交互都在这个窗口中完成,而且这个窗口的大小就是设备屏幕大小,是固定的。
3、受限访问
只能在iOS为应用程序创建的文件系统中读写文件。此区域称为应用程序的沙盒,应用程序在其中存储文档、首选项等需要存储的各种数据。
还存在其他方面的限制。例如,你不能访问iOS上端口号较小的网络端口,也不能执行台式计算机中需要有根用户或管理员权限才能执行的操作。
4、有限的响应时间
启动应用程序时,需要先打开它,载入首选项和数据,并尽快在屏幕上显示主视图,这一切要在几秒内完成。
只要应用程序在运行,就可以从其下方拖出一个菜单条。如果用户按home键,iOS就会返回主页,用户需要快速保存一切内容并退出。如果未在5秒之内保存并放弃控制,无论用户是否已经完成保存,应用程序都将进程将终止。
5、有限的屏幕大小
6、有限的系统资源
目前上市的iOS的物理内存要么是256MB,要么是512MB。内存的一部分用于屏幕缓冲和其他一些系统进程。通常,不到一半(也可能更少)的内存将留给应用程序使用。
现代计算机操作系统,如Mac OS X,会将一部分未使用的内存块写到磁盘的交换文件中。这样,当应用程序起个求的内存超过计算机实际可用的内存时,它仍然刻意运行。但是,iOS并不会将易失性内存(如应用程序数据)写到交换文件中。因此,应用程序可用的内存量将受到手机中未使用的物理内存量的限制。
Cocoa Touch提供了一种内置机制,可以将内存不足的情况通知给应用程序。出现这种情况时,应用程序必须释放不需要的内存,甚至可能会被强制退出。
7、不支持垃圾收集
Cocoa Touch使用的时Objective-C 2.0,但该语言中的一个关键特性在iOS中并不可用:Cocoa Touch不支持垃圾收集。
8、新功能
iOS SDK中有一些新功能是Cocoa中没有的,或者至少不是在任何Mac上都可用的:
iPhone SDK为应用程序提供了一种定位方法,即用Core Location确定手机的当前地理坐标;
大部分iOS还提供了一个内置的照相机和照片库,并且SDK允许应用程序访问这两者;
iOS还提供了有一个内置的加速计,用于检测机子的握持和移动方式。
9、不同的方法
iOS没有键盘和鼠标,意味着在编程时它与用户的交互方式和通用的计算机截然不同。但是,大多数交互都不用你来处理。例如,如果在应用程序中添加一个文本字段,则iOS知道在用户单击该字段时调用键盘,你不需要编写任何额外的代码。