cocoa - 新制作的mac应用程序需要支持10.4吗?我可以既支持10.4又准备64位吗?

标签 cocoa macos 64-bit

我的公司正在从头开始重写我们的软件,我将负责重写Mac客户端的大部分工作(我们软件的核心是基于Windows的,Mac客户端通过网络服务与其通信)。

这不是一个真正的重型应用程序,主要执行一些后台工作跟踪内容以及供用户输入信息的 UI 组件。

我正在尝试决定应该如何努力地主张放弃对 10.4 的支持并使用纯 10.5+/Obj-C 2.0 代码。

我这样做的主要动机是:

  • 编码会更容易,我可以使用 Obj-C 2.0 的所有功能,例如合成属性和快速枚举。

  • 它可以让我访问 10.4 中不存在的几个类和现有类中的方法(只是在模拟 UI 时,我遇到了 NSPathControl 和 NSTreeNode,否则我会使用这两个类)使用起来非常愉快。

  • 准备在 Snow Leopard 中转换为 64 位。看起来大多数技术都是preparing for the move to 64 bit (NSInteger等)仅在10.5+中可用,如果为10.4编写则不可能使用这些。

缺点当然是我们将不再支持仅过时一年的操作系统。

我的老板本人支持这一举措,但当然要考虑我们的客户,并且不想给他们造成任何超出合理范围的问题。支持总监希望支持10.4。我怀疑其他高管一开始会略有反对,只是因为无法支持某些客户。每个人都愿意接受任何一方的良好论据的说服。

我正在尝试与一些支持人员交谈,了解有多少客户实际上仍在使用 10.4,但我还没有这些数据。

某种混合解决方案可能是可能的,例如重写旧客户端的部分内容以使用新的 Web 服务,或者在 10.5 中编写客户端,如果有足够多的人大惊小怪,则将其向后移植到 10.4,但坦率地说,这些听起来像它们可能比放弃 10.5 功能并开始在 10.4 中编写代码更麻烦。

所以我想我的问题如下:

  1. 鉴于上述信息,您认为仅提出采用 10.5+ 的理由是正确的做法吗?对于如何向公司其他部门积极展示这一点,您有什么建议吗?

  2. 我对即将到来的 64 位过渡的了解并不如我所愿。有没有人对不同之处有任何好的引用,您认为仅支持 10.5+ 会让我们更容易进行这种过渡吗?

最佳答案

如果是我进行更新,我的目标是 10.5,特别是因为 10.6 即将到来,而且 10.5 确实带来了很多很棒的新东西(尤其是 Objective-c 2.0)。但是,我认为您确实需要根据您认为目标客户群将使用的产品来回答这个问题。如果他们采用新技术的速度很慢,您可能必须支持 10.4,否则就有失去部分客户群的风险。

另一方面,您实际上可以以 10.4 为目标并使用 10.5 SDK 进行编写。这样您就可以利用添加到 SDK 中的 64 位的所有准备工作。您只需确保不使用 10.4 中不存在的框架的任何类或功能。您还可以对 10.5 框架进行弱链接,并以编程方式决定是否可以使用新功能(虽然这是预先的一些额外工作,但您可以轻松地在将来从代码中逐步淘汰 10.4 支持,并充分利用对于实际运行 10.5 的用户来说,可以享受 10.5 的改进)。

网络上有很多关于跨平台工作的博客和文章。另一件要记住的事情是,如果您以 10.4 为目标,请确保您有一台 10.4 机器可用于进行大量测试(特别是如果您从 10.5 SDK 进行编译以利用 64 位就绪功能)。另请检查扩展坞是否有您可能想要使用 10.5 SDK 中的任何功能。许多功能实际上在 10.4 中可用,但未记录,新文档通常说明部署到 10.4 时可以安全使用哪些功能

关于cocoa - 新制作的mac应用程序需要支持10.4吗?我可以既支持10.4又准备64位吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285837/

相关文章:

cocoa - NSWorkspaceRecycleOperation 不删除文件

c++ - IOKit 驱动程序已加载但未启动

mysql - 如何更改 MySQL 用于创建数据库目录和文件的权限?

ruby - 无法在 Ubuntu 12.10 (AMD64) 上安装 gem "pg"

cocoa - 提供 Mac 应用程序的打印选项

objective-c - 在应用程序中嵌入 Xcode Playground

cocoa - 为什么将 PDF 页面与 CGContextDrawPDFPage 组合会创建非常大的输出文件?

c++ - Visual Studio 似乎不认为它是在 64 位中编译的

java - 为什么 64 位 JVM 在到达 xmx 之前抛出内存不足?

macos - NSWorkSpace SetIcon 不刷新