购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 用于其他语言中的Cocoa API

3.3.1 通过桥调用Cocoa

Objective-C是一门非常简单的语言,很容易编写与其他语言连接的桥程序。有了桥程序在其他语言中也可以调用Cocoa框架的功能了。而实际上,在Cocoa中提供了其他语言使用的API,下面会一一做简要介绍。

1.Java

为Java准备的Cocoa API,自从Mac OS X刚开始推出时就已经存在了,其被称为Cocoa-Java,能够使用几乎Cocoa的所有功能。

但是,Apple公司已经明确宣布Mac OS X 10.4版本以后不支持Cocoa-Java了。

2.Ruby

在Ruby程序中也可以使用Cocoa,被称为RubyCocoa框架。RubyCocoa的支持网站有http:// RubyCocoa.sourceforge.net/。

从Mac OS X 10.5版本开始标准搭载RubyCocoa。

3.Python

Python与Objective-C间桥程序被称为PyObjC,支持网站有http://pyobjc.sourceforge.net/。有了这个PyObjC就可以在Python程序中调用Cocoa API了。

3.3.2 是否应提倡在Objective-C以外的语言中调用Cocoa API的开发方式

既然在Cocoa中提供了这么多Objective-C语言以外的API,那么可以使用这些语言进行编程,然后使用与此语言对应的API,应该也很方便,而且不用再学习一门新语言——Objective-C了。下面从几个实际的情况来探讨一下这个问题。

1.编程入门者的情况下

对于没有编程经验的入门者来说,当然推荐其使用Objective-C了,最大的理由就是Objective-C比较简单,相对于Java、Ruby、Python等语言来说,Objective-C学习起来要简单多了。

另外,许多人对桥API多少还有些不放心。通过桥来调用Cocoa,其实是在原来的Cocoa API的外面披上了一层皮,因为有了这层皮,发生意想不到问题的概率就会增加。如果开发时碰到问题就要浪费大量时间。

因此对新手来说,尽量在一个简单的环境中工作会更好,因此选择Objective-C就是最好的选择。

2.开发Mac OS X桌面应用程序的情况下

如果想充分利用Mac OS X的功能开发桌面应用程序时,还是选择Objective-C比较好。为什么呢?在第2讲中我们已经提到,在Mac OS X中不仅仅是Cocoa框架,还有许多提供各种功能的框架,除了使用Cocoa,还可能会使用其他框架。而其他框架的API都是以Objective-C或者C语言形式提供的。如果使用Objective-C就可以方便地调用,而从Java、Ruby、Python中是没有办法直接调用的(从Mac OS X 10.5开始追加了名为桥支援的功能,能很方便地制作针对所有框架的桥)。

因为iPhone SDK都是以Objective-C或者C语言开发的,与开发Mac桌面应用程序时的情况一样,现在Objective-C是最好的选择。当然也可以使用HTML+CSS+JavaScript来开发iPhone应用程序,但是这样就不能使用iPhone SDK提供的强大功能了。

3.已熟练掌握Java、Ruby或Python的情况下

这种情况下,使用各自的桥来开发也是不错的选择。不管Objective-C多么简单,要掌握一门新的语言还是需要时间的。这时候使用自己早已习惯的语言进行开发,速度更快。另外,从Mac OS X 10.5开始追加了名为桥支援(bridge support)的功能,能很方便地制作针对所有框架的桥。这样Ruby,Python就更能发挥其作用了。

4.在Java、Ruby或Python中使用既存库

例如,在使用Ruby开发应用程序时,也想拥有类似于Mac一样的用户界面。这时候就可以发挥桥的作用。特别是在Ruby或Python中没有标准的GUI框架,使用Cocoa来实现是一个不错的选择。 b0x2osWafeuOHEq8dbhYwmBP9R711Evq+vKwfoIBSuq9tg5upe6vg5z4baUbTHxM

点击中间区域
呼出菜单
上一章
目录
下一章
×