Mac OS X开发的替代范例

时间:2009-11-17 00:18:05

标签: objective-c cocoa model-view-controller macos

目前开发Mac OS X应用程序的标准方法是使用MVC范例的XCode / Objective-C / Interface Builder。

有替代方案吗?

我想使用Interface Builder(XCode),但我宁愿使用不同的编程语言。我来自.NET编程,你可以将点击委托给某个功能等等。对于Mac有类似的东西吗?我宁愿远离Titanium或Qt或RealBASIC等自助应用程序。

8 个答案:

答案 0 :(得分:6)

Objective-c功能非常强大,与Cocoa和Interface Builder一起使用,可以在Mac OS X上开发UI。

您可以将UI中的目标与执行代码中的操作相关联等等。

您可以查看构建示例应用程序的IB guideconnections and bindingsIntroduction to Cocoa Application Tutorial(查看桥接模型和视图:控制器部分,了解如何UI元素被连接到代码) - 即如果您对Objective-c / Cocoa感兴趣。

答案 1 :(得分:4)

您已经可以为Objective-C中的方法分配点击次数 - 您可以定义一个返回类型为IBAction的方法,并且您可以将其连接到按钮中的许多可能事件或许多其他控件。

在您决定漫游其他语言之前,请先学习使用这些工具,因为这里有十年的发展历程。

答案 2 :(得分:4)

关于SO,有很多这样的问题。特别是在mac / iphone标签中。有人发帖询问如何使mac / iphone开发更像他们已经知道的一些IDE /范例。

Mac开发与C#,.NET等不同。它的功能并不弱,只是不同。当你试图运用旧的思维方式时,可可有很多优点,可能并不明显。

不要讨论这里提到的任何项目(PyObjC,MacRuby等),但它们会同样令人困惑,因为它们是本地开发人员工具的薄(漏洞)抽象层。

如果您要在Mac上进行开发,请花一些时间学习Objective-C / Cocoa / Xcode / IB。这不是你知道的方式,但如果你给它机会,这是一个好方法。一旦你知道它,你仍会受到批评,但你也会毫无疑问地找到你真正喜欢它的东西。

如果您不喜欢学习新的平台/范例/环境,请学习java或qt一次并完成它。

答案 3 :(得分:2)

根据您的语言体验和目标要求,您可能会发现MacRuby非常有趣。

还有PyObjC和一个名为RubyCocoa的旧红宝石桥。

但是,如果您正在寻找iphone开发,我唯一听说过的是来自Novell的MonoTouch,并且需要许可费。

请注意,所有上述技术都可以与其本地语言库以及Cocoa和Carbon中的库和框架进行无缝集成。

使用这些技术将为您提供一个相当干净的原生感觉应用程序。但是,许多(如果不是全部)仍然需要您使用Interface Builder。我知道我花了一段时间才习惯。

答案 4 :(得分:1)

有许多桥梁。 PyObjC,CamelBones(Perl),JSCocoa(JavaScript),Cocoa#,HOC(Haskell)等。唯一真正接近无缝的是MacRuby,一种基于核心Mac OS X技术(如LLVM和目标)的Ruby实现-C运行时和垃圾收集器,旨在成为Objective-C的Cocoa开发的同行语言。不过,它仍处于测试阶段。它确实允许你将Ruby块指定为UI元素的动作处理程序,我收集的是你喜欢做的事情。

答案 5 :(得分:0)

很难说你是否更喜欢对语言或设计模式进行详细说明。

请参阅Objective-C ++,Python或Ruby(不推荐使用java桥)。请记住,ObjC是C的超集,您可以在相同的应用程序/源中使用C,C ++和ObjC。 Soo ...使用Objective-C ++你可能最舒服。它听起来像一个混合对象,但它只是支持同一程序中的对象和语法(即你不是在C ++类上建立一个ObjC类,但你可以使用成员)。实际上,这是一个很大的话题,虽然我从未见过几页以上的文章。

就设计模式而言,你是程序员:)

答案 6 :(得分:0)

你最好的选择是使用Cocoa Sharp支持winforms。 cocoasharp网站上有一些教程。这会给你一个良好的开端,但我担心你不会对这种方法走得很远,Cocoa并不适合这种方法,最终,代码最终难以管理。

你可以做的,如果你不介意Cocoa约定但不是真的进入Objective-C,那就是使用Cocoa Sharp(即C#)来编写使用Cocoa的MVC范例的代码。这样,您仍然可以使用Interface Builder(我不太确定Snow Leopard中的XCode支持)并使用熟悉的语言。

看起来这种方法很有效率,因为人们甚至会以这种方式使用iPhone应用程序。

答案 7 :(得分:-1)