【问题标题】:Strategies for porting Carbon code to Cocoa将 Carbon 代码移植到 Cocoa 的策略
【发布时间】:2009-09-02 06:51:58
【问题描述】:

我正在寻找有关使 Carbon 代码准备好 64 位的策略和文章。

64 位的 Carbon 不存在,也不会存在。几乎是dead end

所以为了将 Carbon 应用程序和工具包引入 64 位,他们的 GUI 部分必须用 Cocoa 和 Objective-C 重新编写,对吧?

我怎样才能最大限度地减少我在过渡中所付出的努力?如何最大限度地减少所需的 Objective-C 代码量?

【问题讨论】:

    标签: objective-c cocoa macos 64-bit macos-carbon


    【解决方案1】:

    所以为了将 Carbon 应用程序和工具包引入 64 位,他们的 GUI 部分必须用 Cocoa 和 Objective-C 重新编写,对吧?

    是的。

    我怎样才能最大程度地减少我在过渡中所付出的努力?如何最大限度地减少所需的 Objective-C 代码量?

    1. 学习可可。阅读The Objective-C Programming LanguageCocoa Fundamentals Guide。熟悉 MVC、KVC 和 Objective-C。将 FoundationAppKit 框架引用加入书签。学会爱上 Interface Builder,因为它是你的朋友(在 Cocoa 中比在 Carbon 中更重要)。
    2. 擅长 Cocoa。阅读more Guides(如果您仍在使用 Leopard,请改用 [1])。编写尽可能多的一次性应用程序,甚至是真正的应用程序,只要你有空就可以摆脱。如果可以的话,在 BSD 许可下将它们分发出去,并编写可重用的源代码并将其分发出去。人们会发现错误,有些人会告诉你它们,有些人会提交补丁。能够在一天内编写一个包含模型层、不超过两个控制器以及至少一个自定义视图或单元格的完整应用。
    3. 阅读Carbon Porting Guide,然后移植您的应用。

    我自己来自 Carbon。这是完全不同的——你不妨重新开始,忽略你以前的 Carbon 经验,也许你不会犯我犯的一些早期错误(比如跳过模型层)。

    至于您的应用,您可能需要做很多手术,因为 Carbon 并没有像 Cocoa 那样强迫您将 UI 和逻辑分开。 Cocoa 强制执行 MVC;如果你不遵守它,你就会通过重新发明轮子、犯和纠正错误来付出代价。

    这让 Cocoa 听起来像是更多的工作,但事实并非如此。移植很困难(不可避免),但除此之外,Cocoa 恰恰相反:编写(和阅读!)一个 Cocoa 应用程序比编写(和阅读)一个 Carbon 应用程序容易很多。移植结束后,您会很高兴您切换了。

    哦,很多人会推荐Cocoa Programming for Mac OS X by Aaron HillegassProgramming in Objective-C 2.0 by Stephen Kochan 中的一个或两个。我有第一本书,也读过一些,但那是在我已经学会 Cocoa 之后,所以我不能认真推荐它;也就是说,它还不错,而且我认为您阅读它不会做错。我什至没有看过第二本书,所以我不会说它的质量。

    [1]:file:///Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset/Contents/Resources/Documents/documentation/Cocoa/index-date0.html(堆栈溢出不允许我链接文件:URL)

    【讨论】:

    • 我实际上对 Cocoa 比对 Carbon 更熟悉,但我使用的是基于 Carbon(FLTK、OpenCV、...)构建的代码/库(不是我编写的)。所以我不想花太多时间去理解 Carbon。我在 Apple 的网站上寻找移植指南,但找不到。您所指的“Carbon Porting Guide”是关于将遗留应用程序从 Mac OS 9 移植到 Carbon,而不是 Carbon 到 Cocoa。
    • 哦,好的。好吧,除非你想移植它(假设它是开源的),否则 FLTK 可能不得不去。 OpenCV 似乎不是基于碳的,只是基于 C 的,所以它应该可以正常工作。你称它为“Carbon 应用程序”,所以我假设你已经有了一个基于 Carbon 的实现,可能是从以前的开发人员那里继承来的。如果您想移植现有代码而不是简单地从头开始编写新应用程序,那么您至少必须了解基本的 Carbon。尝试开始使用 Carbon:developer.apple.com/legacy/mac/library/referencelibrary/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2015-08-20
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2011-04-29
    相关资源
    最近更新 更多