gpt4 book ai didi

ios - 代号一 native 代码中是否可以使用 swift 代码而不是 Objective-C

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:07 25 4
gpt4 key购买 nike

我需要在我的代号 One 应用程序中插入 native 代码。我是 iOS 编程的新手,所以我需要学习 Objective-C。然而,我读到 Swift 是 Objective-C 的继承者,我会更喜欢 Swift 语法。但是不知道Codename One是否支持Swift。在查看 Codename One 生成的 iOS 源代码时,虽然我不是 100% 确定,但它看起来像 C 代码(我可能是错的)。

在他的博客 Shannah(来自代号一)wrote that

Codename One currently compiles everything down to plain old C code so we would be largely unaffected by such a change – although there would be some native portions that use Objective-C that would need updating. Luckily, if you’re a Codename One user, you don’t need to concern yourself with these details because you are working in Java.

我不太清楚这就是为什么我要问是否可以在 Codename One native 代码中使用 Swift 代码?

非常感谢你帮我澄清这个话题!

干杯

最佳答案

是也不是。您现在可以将 Swift 代码编译为静态库(.a 文件),然后像使用任何静态库一样使用它,其中 Objective-C 代码仅充当桥梁。

由于以下几个因素,直接使用 Swift 是有问题的:

  • 目前我们在构建时仍然使用旧版本的 xcode,我们制作了一个 attempt at migrating to the latest但是有一个setback .我们希望在 3.5 发布之前进行迁移,如果没有,那么不久之后。
    Swift 需要相对较新版本的 xcode,因此在我们这样做之前,嵌入 Swift 代码会出现问题。

  • Swift 采用 ARC。这是我们试图与 GC 集成的东西,但目前它并不能很好地工作。

  • 我们需要生成 Swift stub 作为一个选项,这是有问题的,因为如果您有现有的 cn1lib 或依赖 Objective-C 的 native 接口(interface),它可能会产生冲突。

但是让我们回溯一下。 Swift 比现在已经很老的 Objective-C 有巨大的优势。但它对 Codename One 开发人员没有任何重大优势......

  • 它并不比 Codename One 转换为 C 更快,它比 Swift 和 Objective-C 都快

  • 它不会使代码更清晰,如果您的 native 界面中有大量代码,那么您做错了什么。无论如何,你的大部分代码都是用 Java 编写的,你可以争论 Java 与 Swift 的优点,但如果你使用代号一,那么你几乎选择了 Java。

  • 如果您需要使用用 Swift 编写的应用程序,您可以将其打包为静态库。

所以目前代号一中真的没有 Swift 的真正用例。

关于ios - 代号一 native 代码中是否可以使用 swift 代码而不是 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241771/

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