-1

:) 当你写一个 iOS App 时,为了使用 UI 像按钮。你必须用Objective-C编写它。(Android 上的 Java)。我想知道是否有人对此背后的技术推理有任何想法。为什么他们可能会这样做。因为你可以在 iOS 上用 C++ 编写应用程序,所以我从来没有完全弄清楚为什么他们没有公开一种制作 UI 的方法。(忽略他们在 Mac 上的做法)。

注意:我知道你可以用 C++ 为 Android 编写应用程序,但问题更多的是为什么主 UI 即按钮等被迫以动态语言编写用于这些平台,为什么不通过 C++ 公开访问它而无需编写粗包装或绑定层自己。

4

3 回答 3

2

iOS 确实公开了一个用于绘制 UI 组件的 C API;它被称为核心图形。

于 2013-10-16T02:05:00.940 回答
2

我猜想当最初的框架工程师在他们各自的操作系统上工作时,跨平台的需求,比如用 C++ 等不同的语言支持 UI 是他们最关心的问题。您必须意识到,当最后期限迫在眉睫时,所有功能都会被优先考虑,只有那些被认为最重要的才能发挥作用。其他一切都是其结果。

对于 iOS,Objective-C 是 Apple 使用的操作系统的首选语言。所有 MacOS 应用程序开发人员都在使用 Objective-C 编写,因此他们的开发人员处于熟悉的领域。

在 Android 的情况下,Java 已经是一种流行的语言,具有现有的开源工具和库(Eclipse IDE、Apache Harmony),因此他们可能决定使用 Java 作为应用程序开发的第一类语言,应用程序在 VM 中运行一个后果。或者,该决定可能是 VM 首先用于应用程序的沙盒,而 Java 被选为应用程序开发人员的语言。或者其他什么原因。

在任何一种情况下,既然两者都在客户手中,任何添加其他语言的尝试都意味着设计决策和权衡以及许多其他问题,例如:如何在不破坏现有 API 的情况下添加它,如何支持它以及新功能,如何测试等。

随着您看到越来越多的软件,您会意识到很多东西在设计时只是随意的或有意义的。

于 2013-10-16T02:57:30.963 回答
1

因为视图本身是分别用 Objective-C 或 Java 编写的。在罗马做到入乡随俗。

于 2013-10-16T02:04:43.223 回答