Snow Leopard上的PyObjc和Cocoa

12 投票
6 回答
4952 浏览
提问于 2025-04-15 13:59

我即将开始我的A-Level计算机项目(高中水平),希望能做一个Mac OS的销售点应用程序。不幸的是,Objective-C对我来说有点难,目前我没有人可以帮我,如果在项目中遇到问题,我可能会在这部分课程中失败,进而无法进入大学。所以这对我来说非常重要。

我想用Python来开发一个Cocoa应用。我知道我需要PyObjc,但网上的资料似乎都假设它已经预装好了。显然,在Leopard和Snow Leopard上是这样,但我在Snow Leopard上似乎没有找到它,也从未在Leopard上注意到过。此外,我尝试按照Sourceforge页面上的说明安装最新的PyObjc测试版,但没有成功。

如果有人能告诉我需要安装什么,怎么安装,以及提供一些资源或教程的链接,我将非常感激。

提前谢谢大家的帮助!

更新:我发现这个问题很受欢迎,我刚刚因为这个问题获得了“显著问题”徽章,所以我想更新一下,告诉来到这个页面的人我在得到答案后做了什么。

不幸的是,我没能用Python创建一个Mac应用。当时这让我很失望,但现在看来可能是件好事。我为我的项目做了一个Windows应用,使用C#编写,它是一个在模拟环境中创建和运行汇编应用的工具。我的课程老师现在开始用我的工具来教课,而不是用他自己的工具!我在计算机项目中得了很高的分数(超过90%),这帮助我在计算机A-Level中获得了A*(最高等级),因此我顺利进入了南安普顿大学学习计算机科学。

这个夏天,我决定制作一个iPad应用(即将发布),我很高兴地说,现在我觉得我可以用Objective-C制作一个Mac OS应用,因为我觉得自己学到了足够的知识。我很高兴我花时间去学习它,这是一门很棒的语言,随着iOS的流行,它真的很有用。

抱歉有点自夸,但我真的很开心。我想说的是,如果你来到这个页面希望轻松使用PyObjc创建Mac应用,那就别费心了。这需要一些时间和努力,但一旦你学会了Objective-C,使用它创建应用会让你感到非常满足。祝你好运!

6 个回答

4

作为结账功能的开发者之一,我也来发表一下看法(嗨,Quinn!)。根据我们的观察,PyObjC在Snow Leopard上运行得相当不错。我们在Leopard上构建了最新的SVN版本2.2b,并进行了些自定义,然后直接把site-packages文件夹转移过来了。

理论上,你应该可以使用内置的Python/PyObjC(只需导入objc、Foundation和AppKit),但因为我们使用的是定制版本的Python和PyObjC,所以我不太确定具体的情况。邮件列表上提到的问题不多(只有几个),这可能是个好兆头。

祝你项目顺利,如果有具体的POS问题,随时给我发邮件哦;-)

7

你是说像Checkout那样吗?:-) 我提到这个是因为Checkout非常漂亮,而且是用PyObjC写的……

你的担忧是有道理的,不过可能没有你想的那么严重。使用PyObjC还是需要你学一些Objective-C,而且你至少要了解一些Cocoa框架,因为每当你需要做一些特定于Cocoa的任务时,就得调用这些框架。

我建议你先看看这个SO问题“为什么PyObjC的文档这么差?”“PyObjC和RubyCocoa在Mac开发中:哪个更成熟?”,再决定“仅仅使用PyObjC”是否能让事情变得更简单。我不想贬低PyObjC,因为它确实很强大且非常有用,但要明白没有什么是万能的,没有一种语言或技术适合所有问题。

Objective-C语言简单明了。对于新的Cocoa程序员来说,Cocoa框架通常是学习的主要障碍。而且,你还有StackOverflow和很多其他资源可以帮助你解答问题。(根据“pyobjc”标签的活跃程度,你在SO上也更有可能得到好的Objective-C帮助。)

18

让我再说一遍大家已经提到过的事情。我也是一个刚开始做Cocoa开发项目的学生,起初我想:“我已经会Python了,那我就用PyObjC,这样就不用学Objective-C了,感觉那太难了。”但我很快发现,这样是行不通的。你可以在不学Objective-C的情况下开发OS X应用,但你必须学习Cocoa库,这些库占了你写Cocoa应用所需知识的99%。其实Objective-C本身并不难,真正需要花时间去学的是Cocoa库。

PyObjC基本上是把Cocoa库和Python的语法结合在一起。我很快就放弃了这个方法,决定既然要学Cocoa,那就直接用Objective-C吧。

如果你想学习,Aaron Hillegass的书是个不错的起点。祝你好运!

撰写回答