菜单
  

    2.1.2  Objective-C语法

    Objective-C是C语言的严格母集合,即任何原始的C语言程式不做修改就可以通过Objective-C编译器,Objective-C还允许使用任何原始的C语言代码。我们形容Objective-C是覆盖于C语言上的一层薄纱,从字面上就可以看出Objective-C的原意:在原始C语言主体上加入面向对象的特性。Objective-C的面向对象语法来自于Smalltalk-80的object和message passing风格,其他包括变量类型、预处理、流程控制、函数声明与调用的非面向对象的语法则和C语言一模一样。

    2.1.3  Objective-C的优缺点

    Objective-C非常高效,其内核是一个用C语言写成的很小的运行库,这样应用程序的占用空间比较小。许多OO系统使用很大的VM执行时间,就会取代整个系统的运作,Objective-C则相反,编译后的的程序一般不会比原始代码大。其函数库也和Smalltalk系统相反,不需要使用极大的内存来开启一个窗口。

    Objective-C的最初是不支持垃圾回收的,因为很多人考虑到Smalltalk回收时的漫长“死亡时间”会令整个系统失去功用。但某些第三方版本已支持垃圾回收(尤是GNUStep),然而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,因为在NeXTSTEP开发时定下了这些类的名称,所以才将“NS”作为前缀的。

    尽管Objective-C是C的母集,但并未将C的基本类型作为第一级对象。和C++不同的是,Objective-C不支持运算子多载(不支持ad-hoc多型)。但Objective-C只容许对象继承一个类别(不设多重继承)的特点和Java是相同的。另外,Objective-C的Categories和protocols提供了很多多重继承的好处,还避免了许多缺点,例如:额外执行时间过重和二进制的不兼容。

    因为Objective-C使用动态运行时类型,而所有的方法又都是函数调用(甚至连系统调用有时也会这样),所以很多常见的编译时性能优化方法Objective-C都不能使用,例如:内联函数、常数传播、交互式优化、纯量取代与聚集等。这样便导致Objective-C的性能比类似的对象抽象语言差。文献综述

    2.1.4  Objective-C语言的编译环境

    目前,常见的Objective-C开发环境有GUNStep(LINUX)和Xcode(Mac OS X)。其中GUNStep也有Windows版本的安装包,而Xcode仅适用于Mac OS X和iOS的开发,不过它可以在Mac虚拟机中运行。

    2.2  Cocoa简介

    Cocoa是从1980年代由NeXT开发的编程环境NeXTSTEP和OpenStep演变而来的,是Mac OS X上五大API之一(其它四个是Carbon、Posix、X11和Java),并与其它的应用环境共用一个集成开发环境。Cocoa本身由Objective-C语言写成的,因此Cocoa应用程序通常是用Objective-C在Xcode和Interface Builder上写成。

    Cocoa和所有的应用程序环境一样,包括运行环境和开发这两个方面。在运行环境方面,Cocoa应用程序呈现Aqua用户界面,并且将用户界面与操作系统其它的可视部分紧密集成。这类应用程序有其独特的外观,是因为Cocoa编程环境让程序从多方面自动遵循苹果公司的人机界面守则。Cocoa无缝地成为用户体验的一部分,在运行环境上运作得很优秀。

  1. 上一篇:4C法则医学图像中不规则形状识别与处理研究
  2. 下一篇:TF-IDF算法作业抄袭检测系统的设计与实现
  1. jsp+mysql学生选课信息系统设计与实现

  2. C#基于ARCGIS的校园电子地图查询系统设计

  3. 电子商务信用机制研究

  4. java+mysql车票预订信息系统设计与实现

  5. Objective-C移动端借还书系统的设计与实现

  6. asp.net+sqlserver医院电子病历...

  7. asp.net+sqlserver二手电子产品...

  8. java+mysql车辆管理系统的设计+源代码

  9. 河岸冲刷和泥沙淤积的监测国内外研究现状

  10. 大众媒体对公共政策制定的影响

  11. 当代大学生慈善意识研究+文献综述

  12. 酸性水汽提装置总汽提塔设计+CAD图纸

  13. 中考体育项目与体育教学合理结合的研究

  14. 十二层带中心支撑钢结构...

  15. 电站锅炉暖风器设计任务书

  16. 杂拟谷盗体内共生菌沃尔...

  17. 乳业同业并购式全产业链...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回