1.3 本论文主要内容
本论文所要实现的是工程文件在iPad上的本地浏览模块,此模块包括本地文件列表的显示,文件的删除,以及文件的浏览。在浏览过程中要实现图形对象的移动、旋转、局部放大等功能。
本论文第二章主要介绍iOS开发的相关技术,第三章叙述软件需求,论述软件设计的可行性,第四章介绍软件的设计,第五章重点介绍核心功能的实现,以及具体功能块代码,最后介绍软件测试结果。
2 课题相关技术
2.1 Objective-C简介
2.1.1 Objective-C历史
1980年代初,布莱德•确斯(Brad Cox)在其公司Stepstone发明了Objective-C,它以一种叫做SmallTalk-80的语言为基础。Objective-C建立在C语言之上,意着它是在C语言基础上添加了扩展而创造出来的能够创建和操作对象的一门新的程序设计语言。对Objective-C最主要的描述是他1986年出版的《Object-oriented Programming, An Evolutionary Approach》。1988年,NeXT Software公司获得了Objective-C语言的授权,并开发出了Objective-C的语言库和一个名为NEXTSTEP的开发环境。1992年,自由软件基金会的GNU开发环境增加了对Objective-C的支持。1994年,NeXT Computer公司和升阳微系统(Sun Microsystem)联合发布了一个针对NEXTSTEP系统的标准典范,名为OPENSTEP。OPENSTEP在自由软件基金会的实现名称为GNUStep。1996年12月20日,苹果公司宣布收购NeXT Software公司,NEXTSTEP/OPENSTEP环境成为苹果操作系统下一个主要发行版本OS X的基础。这个开发环境的该版本被苹果公司称为Cocoa。
2.1.2 Objective-C语法
Objective-C是C语言的严格母集合,意指任何原始的C语言程式都可以通过Objective-C编译器而不需修改,也允许 Objective-C 使用任何原始的C语言代码。Objective-C 被形容为覆盖于C语言上的一层薄纱,这是因为Objective-C的原意就是在原始C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk讯息传递风格。所有其他非面向对象的语法,包括变量类型,预处理(preprocessing),流程控制,函数声明与调用皆与C语言完全一致[2]。
2.1.3 Objective-C的优缺点
Objective-C是非常高效的语言。内核采用一个用C写成、很小的运行库,使应用程序的占用空间较小。和大部分OO系统使用极大的VM执行时间会取代整个系统的运作相反,Objective-C编译后的的程序通常不会比其原始代码大,而其函数库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。
Objective-C的最初版本并不支持垃圾回收,虽然某些第三方版本已加入这个功能(尤是GNUstep),但 Apple在其Mac OS X 10.3中仍未引入这个功能。后续发展过程中,Apple发布的Xcode4开始支持自动释放了,但自动释放和垃圾回收两者机制不同,在Xcode4中的自动释放,采用ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的[NSObject release]。
另一个问题是Objective-C不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称前加上前缀,这时常引致冲突。在2004年以前,Cocoa编程环境中,所有Mac OS X类和函数均有“NS”作为前缀,例如NSObject或NSButton来区分它们属于Mac OS X Core;使用“NS”是由于这些类的名称是在NeXTSTEP开发时定下。
和C++不同,Objective-C不支持运算子多载。亦与C++不同,但和Java相同的是,Objective-C只容许对象继承一个类别(不设多重继承)。然后Categories和protocols不但可以提供很多多重继承的好处,而且没有多继承的许多缺点,例如额外执行时间过长和二进制不兼容。 iPad上工程文件浏览工具的开发(3):http://www.youerw.com/jisuanji/lunwen_9691.html