读书频道 > 网站 > 网页设计 > iPhone开发基础教程
1.4 编写iPhone应用程序有何不同
12-07-11    叶孤城
收藏    我要投稿   

本文所属图书 > iPhone开发基础教程

本书由业界名家撰写,英文原版问世以后迅速登上Amazon计算机图书排行榜榜首并持续至今,总排名一度达到20名左右,创造了销售奇迹。而且,本书获得了读者的一致好评,已经被奉为经典。书中从到Apple网站注册账号,...立即去当当网订购

如果从未使用过Cocoa或它的前期产品NextSTEP,那么你可能会发现Cocoa Touch(用于编写iPhone应用程序的应用程序框架)稍显另类。它与其他常用应用程序框架(如用于构建.NET或Java应用程序的框架)之间存在一些基本差异。你起初可能会有点不知所措,但不必担心,只要勤加练习,就可以掌握其中的规律。

如果你具备使用Cocoa或NextSTEP编程的经验,则会发现iPhone SDK中有许多熟悉的身影。其中的许多类都是从用于Mac OS X开发的程序版本中原样借鉴过来的,一些类即便存在不同,它们也遵循相同的基本原则,并使用类似的设计模式。但是,Cocoa和Cocoa Touch之间却存在一些差异。

无论你的知识背景如何,都需要谨记iPhone开发与桌面应用程序开发之间的重要差异。

1.4.1  只有一个正在运行的应用程序

除了操作系统之外,任何时候iPhone上都只能运行一个应用程序。随着iPhone内存的增大、处理器的增强,这一点在未来可能会发生变化。但是在目前,在执行代码时,你的应用程序将是唯一正在运行的程序。若你的应用程序不是用户正在交互中的,那么它不会起作用。

1.4.2  只有一个窗口

在桌面及笔记本操作系统中,多个程序可以同时运行,并且可以分别创建和控制多个窗口。而iPhone则有所不同,它只允许应用程序操作一个"窗口"。应用程序与用户的所有交互都在这个窗口中完成,而且这个窗口大小就是iPhone屏幕的大小,是固定的。

1.4.3  受限访问

计算机上的程序可以访问启动它们的用户能够访问的任何内容,而iPhone则严格限制了应用程序的权限。你只能在iPhone为应用程序创建的文件系统中读写文件。此区域称为应用程序的沙盒,应用程序在其中存储文档、首选项等需要存储的数据。

应用程序还存在其他方面的限制。举例来说,你不能访问iPhone上端口号较小的网络端口,或者执行台式计算机中需要根用户或管理员权限才能执行的操作。

1.4.4  有限的响应时间

由于其使用方式特殊,iPhone及其应用程序需要具备较快的响应时间。启动应用程序之后,需要打开应用程序,载入首选项和数据,并尽快在屏幕上显示主视图,这一切要在几秒之内发生。只要应用程序在运行,就可以从其下方拖出一个菜单条。如果用户按主页(home)按钮,iPhone就会返回主页,并且用户需要快速保存一切内容并退出。如果未在5秒之内保存并放弃控制,则应用程序进程将被终止,无论用户是否已经完成保存。

因此,你在设计iPhone应用程序时需要注意这一点,以确保用户退出时不会丢失数据。

1.4.5  有限的屏幕大小

iPhone的屏幕显示效果非常出色,从它推出直到现在,它一直是消费者设备上分辨率最高的屏幕。但是,iPhone的显示屏幕并不大,你施展的空间要比现代计算机小很多,仅有480×320像素。而在撰写本书时,苹果公司最便宜的iMac支持1680×1050像素,最便宜的笔记本电脑MacBook支持1280×800像素。而苹果公司最大的显示器,30英寸的Cinema Display,支持2560×1600像素。

1.4.6  有限的系统资源

阅读本书的任何资深程序员可能都会对128 MB内存、4 GB存储空间的机器嗤之以鼻,因为其资源实在是非常有限,但这种机器却是真实存在的。或许,开发iPhone应用程序与在内存为48 KB的机器上编写复杂的电子表格应用程序不属于同一级别,二者之间没有可比性,但由于iPhone的图形属性和它的功能,所以其内存不足是非常容易出现的。目前上市的iPhone具备128 MB物理内存,当然这还会随时间不断增长。内存的一部分用于屏幕缓冲和其他一些系统进程。通常,大约一半内存将留给应用程序使用。

虽然64 MB对于这样的小型计算机可能已经足够了,但谈到iPhone的内存时还有另一个因素需要考虑:现代计算机操作系统,如Mac OS X,会将一部分未使用的内存块写到磁盘的交换文件中。这样,当应用程序请求的内存超过计算机实际可用的内存时,它仍然可以运行。但是,iPhone OS并不会将易失性内存(如应用程序数据)写到交换文件中。因此,应用程序可用的内存量将受到电话中未使用物理内存量的限制。

Cocoa Touch提供了一种内置机制,可以将内存不足的情况通知给应用程序。出现这种情况时,应用程序必须释放不需要的内存,甚至可能被强制退出。

1.4.7  缺少Cocoa工具

如果你在接触iPhone之前有过Cocoa方面的经验,那么你过去习惯使用的一些工具在iPhone中已经不可用了。iPhone SDK不支持Core Data或Cocoa Binding。我们之前已经说过,Cocoa Touch使用的是Objective-C 2.0,但该语言中的一个关键特性在iPhone中并不可用:Cocoa Touch不支持垃圾收集。

1.4.8  新属性

前面已经说过,Cocoa Touch缺少Cocoa的一些功能,但iPhone SDK中也有一些新功能是Cocoa所没有的,或者至少不是在任何Mac上都可用的。iPhone SDK为应用程序提供了一种定位方法,即使用Core Location确定电话的当前地理坐标。iPhone还提供了一个内置的摄像和照片库,并且SDK允许应用程序访问这两者。iPhone还提供了一个内置的加速计,用于检测iPhone的持有和移动方式。

1.4.9  与众不同的方法

iPhone没有键盘和鼠标,这意味着它与用户的交互方式与通用的计算机截然不同。所幸的是,大多数交互都不需要你来处理。举例来说,如果在应用程序中添加一个文本字段,则iPhone知道在用户单击该字段时调用键盘,而不需要编写任何额外的代码

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站