gpt4 book ai didi

objective-c - 使用 Objective-C 进行 Windows 开发

转载 作者:可可西里 更新时间:2023-11-01 12:43:33 25 4
gpt4 key购买 nike

最近阅读了一篇关于 Objective-C 的文章,我觉得它是一种相当简洁的语言,具有许多很酷的功能。

我无意进行任何 iPhone 开发,但我知道 GCC 能够编译 Objective-C 代码,所以我想知道 - 对于 Windows 开发,Objective-C 是否是 C99 的可行替代语言?

特别是:

  • 目前是否有人使用 Objective-C 进行 Windows 开发?
  • 是否有任何运行时组件需要与我的应用程序一起分发?
  • 我知道 Objective-C 是 C 的超集,这是否意味着可以使用任何与 C 兼容的库? (例如 Windows API)
  • 我的应用程序会进行垃圾收集吗?
  • 我找到了 CocotronGNUstep在谈论在其他平台上使用 Objective-C 时经常提到这些,但是由于 GCC 已经可以用于编译 Objective-C 我真的不明白为什么我需要这些。
  • 在尝试使用 Objective-C 进行 Windows 开发时,我是否可能遇到任何其他陷阱或陷阱?

最佳答案

关于您的第一个问题,我不知道是否有人认真使用 Objective-C 在 Windows 上进行开发,但可能会有,尽管这些数字可能会少于那些正在做的人使用像 whitespace 这样的语言认真工作.

其次,您至少需要 objective-c 运行时。有两个运行时,NeXT 的(现在是 Apple 的)运行时和 GNU Objective-C 运行时。它们不兼容。如果您在非 NeXT 和非 Apple 平台上,例如 Windows,您别无选择,只能使用 GNU 运行时。

Objective-C 是 C 的超集,是的,如果您愿意,可以直接在您的 Objective-C 代码中使用 Win32 API。同样,如果您使用保守的收集器,您将只能进行垃圾收集,并且它与您正在使用的库相关联。简而言之:不。

GCC 所具有的是对 objective-c 语言和运行时的支持,没有标准库。 GNU objc 运行时为您提供的标准库是两个对象:Object 和支持 @"" 语法所需的 NXConstantString 类。 Object 只是一个基类。不是很有用,是吗?这就是像 Cocotron 和 GNUstep 这样的框架存在的原因——让您可以访问 OPENSTEP/Cocoa 的实现。

关于缺陷或陷阱,是的:您的应用程序,即使使用 Cocotron 或 GNUstep 也可能永远无法移植到 Mac,或者您可能会遇到诸如 GNU objc 运行时中的类型选择器之类的问题,或者大量其他问题.让我通过提出另一个问题来结束这个问题的回答:您可能会遇到以 .NET 为目标的哪些缺陷或陷阱?我敢肯定,即使不是大多数,也有一些适用于这种情况。标准陷阱和陷阱适用。

希望对您有所帮助。

关于objective-c - 使用 Objective-C 进行 Windows 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com