菜单
  

    2.2.1 Objective-C语言的优缺点
    Objective-C是非常“实际”的语言。和大部分OO系统使用极大的VM执行时间取代整个系统的运作相反的是,Objective-C使用一个用C写成的很小的运行库,它写成的程序通常不会比源代码大很多。而其函数库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。
    Objective-C的最初版本并不支持垃圾回收。在当时,这是争论的焦点之一,有很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不支持垃圾回收。虽然某些第三方版本已加入这个功能(尤其是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核心;使用“NS”是由于这些类的名称在NeXTSTEP开发时定下的。
    虽然Objective-C是C的超集,但它也不将C的基本类型作为第一级对象。与C++不同的是,Objective-C不支持运算子多载。而跟Java相同的是,Objective-C只容许对象继承自一个类(不设多重继承)。它的Categories和Protocols用来实现多重继承,既规避了多重继承的缺点,又提供了多重继承的好处(例如额外执行时间过重和二进制的不兼容)。
    由于Objective-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用也是如此),很多常见的编译时性能优化方法都不能应用于Objective-C(如内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Objective-C性能劣于类似的对象抽象语言。
    2.2.2 Objective-C语言的编程环境
        目前,常见的Objective-C开发环境有GUNSTEP(LINUX)和Xcode(Mac OS X)。其中GUNSTEP也有Windows版本的安装包,而Xcode只针对Mac OS X和iOS的开发,可以在Mac虚拟机里运行。[2]
    2.3 Cocoa简介
    Cocoa是一套面向对象的框架,它为程序在Mac OS X和iOS上运行提供了一个运行环境。它是Mac OS X上卓越的应用环境和iOS上唯一的应用环境。(Carbon也是一个Mac OS X上可供选择的应用环境,但是它是一个具有程序编程接口的兼容性框架,旨在支持现有的Mac OS X代码基础。)您可以在Mac OS X和iOS上看到许多应用,包括Mail和Safari这些都是Cocoa应用。一个名为Xcode的集成开发环境支持这两个平台应用开发。它与Cocoa的结合使得创建一个良好因素的全功能的应用变得简单。
    和所有的应用程序环境一样,Cocoa包括两个方面:即运行环境方面和开发方面。在运行环境方面,Cocoa应用程序呈现用户界面,且和操作系统的其它可视部分紧密集成。在Mac OS X里,这些部分包括Finder、Dock、和基于所有环境的其它应用程序。
    但是,程序员更感兴趣的是开发方面。Cocoa 是一个面向对象的软件组件—类的集成套件,使开发者可以快速创建强壮和全功能的Mac OS X和iOS应用。这些类是可复用和可支配的软件积木,开发者可以直接使用,或者根据具体需求对其进行扩展。从用户界面对象到数据格式编排,几乎每个想象得到的开发需求都存在对应的Cocoa类。对于没有预想到的需求,您可以轻松地从现有类派生出子类来实现。
  1. 上一篇:JAVA增值业务运营系统中业务监控分析的研究与开发
  2. 下一篇:WEB安全漏洞检测工具的分析与改进
  1. JSP+Servlet网上商城系统设计

  2. 基于B2C的网上书城的设计与实现

  3. 生物信息云平台上的微生物群落拓扑分析

  4. ASP.NET的网上书店的设计与实现

  5. jsp个人邮件管理系统设计与实现

  6. C#+sqlserver网上订餐系统设计+源代码

  7. C#+sqlserver网上订餐系统的设计+源代码

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

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

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

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

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

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

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

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

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

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

  

About

751论文网手机版...

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

关闭返回