Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
苹果为什么使用Objective-C? 为什么苹果决定使用Objto-C作为iPhone SDK而不是C++?_Iphone_Objective C - Fatal编程技术网

苹果为什么使用Objective-C? 为什么苹果决定使用Objto-C作为iPhone SDK而不是C++?

苹果为什么使用Objective-C? 为什么苹果决定使用Objto-C作为iPhone SDK而不是C++?,iphone,objective-c,Iphone,Objective C,我觉得奇怪的是,他们不会选择一种比Objective-C更流行的语言。这是因为他们希望在应用程序中有一些独特的东西,而这些东西不是通用的吗?这是因为Objective C在Mac OS X出现之前,一直是Mac OS X开发的事实上的语言。当乔布斯离开苹果去安装时接下来,语言目标C被开发为一种不是C++的特定语言,避免了许多缺陷。因此,任何便携式或消费类设备(包括苹果电视)都可以使用Objective C作为其主要开发语言,并在性能或接口问题需要时,将其降到底层C层。Objective-C将面向

我觉得奇怪的是,他们不会选择一种比Objective-C更流行的语言。这是因为他们希望在应用程序中有一些独特的东西,而这些东西不是通用的吗?

这是因为Objective C在Mac OS X出现之前,一直是Mac OS X开发的事实上的语言。当乔布斯离开苹果去安装时接下来,语言目标C被开发为一种不是C++的特定语言,避免了许多缺陷。因此,任何便携式或消费类设备(包括苹果电视)都可以使用Objective C作为其主要开发语言,并在性能或接口问题需要时,将其降到底层C层。

Objective-C将面向对象编程添加到C中。它用于NeXT,并由此衍生出大量OSX。它支持所有的C语言,比C++更简单。

苹果在90年代与NeXT合并,Mac OS X由NeXT的操作系统NeXTSTEP制成。Objective-C是NeXTSTEP应用程序框架的官方语言,后来成为MacOSX的Cocoa。MacOSX随后被改编成iPhone操作系统,Cocoa被制作成Cocoa Touch。Objto-C一直沿用得很好,很多可可的特性很难转化为C++。
因此,本质上,它都来自NeXT。

请注意,Objective-C并不是一种新语言。它早在1986年就存在了——远远早于Java或C


自下一步以来,它一直被广泛使用,许多真实世界的应用程序都在使用它

我相信,Objective C于1983年诞生,由布拉德·考克斯(Brad Cox)和汤姆·洛夫(Tom Love)创建。Objective-C的思想是利用C的纯洁性和低级控制,并将其与真正的面向对象功能相结合,从而允许公司定制可以与Obj-C的OOP层通信的系统库。从本质上讲,它是有效的。Obj-C是C的严格超集,不像C++,它是C的大部分,但有很多不同。 史蒂夫·乔布斯(Steve Jobs)在1985年创立NeXT Computer时,引进了他的一些前苹果团队和其他团队。他最好的程序员对使用一种在C语言上扩展的语言感兴趣,这种语言具有相同的速度优势和系统控制能力。他们选择了Objective-C。NeXT最终为基础语言编写了许多库和方法。这些都是从下一步的NS开始的。这是下一个操作系统的名称。到1989年,“下一步”操作系统被认为比微软的Windows或Mac操作系统优越得多,许多计算机公司迫切希望获得许可证。乔布斯根本不想朝这个方向走

一旦苹果聪明起来并将史蒂夫·乔布斯重新带回到了这个阵营(1996年),将下一步操作系统注入到新的MacOSX中,确实是苹果恢复其软件和编程战略的关键

当C++仍然是一种真正优秀和强大的语言时,我发现目标C的缺点也不多(只是我的观点),而苹果对可可库的持续工作使Obj-C语言成为一种真正具有C语言基础的现代力量。它比Java好吗?不确定。但对于它的主要用途(Mac OS、iOS)来说,它是非常好的,尽管有点过于冗长

对Obj-C最大的批评是其语法风格,但任何真正学习该语言的程序员都会很快意识到其惊人的功能,并且似乎不适合Mac、iPhone和iPad


其他平台最终会采用Obj-C吗?不确定,但值得怀疑。但是可可库真的很棒。

苹果在2010年回答了这个问题:

选择Objective-C语言有多种原因。弗斯特 最重要的是,它是一种面向对象的语言。那种 Cocoa框架中打包的功能只能是 通过面向对象技术交付。第二,因为 Objective-C是标准ANSI C、现有C程序的扩展 能够适应使用软件框架而不丢失任何 他们最初开发的作品。因为 Objective-C结合了C,您在工作时可以获得C的所有好处 在Objective-C中,您可以选择何时在 面向对象的方式(例如定义一个新类)以及何时 坚持程序化编程技术(定义结构和 一些函数(而不是类)

此外,Objective-C是一种基本上简单的语言。它的语法 是小的,明确的,容易学习。面向对象编程, 凭借其自我意识的术语和对抽象设计的强调, 对新兵来说,这往往是一个陡峭的学习曲线。A. 像Objective-C这样组织良好的语言可以使成为 熟练的面向对象程序员就不那么困难了

与其他基于C的面向对象语言相比,Objective-C是 非常有活力。编译器保存了大量有关的信息 对象本身可以在运行时使用。否则的决定 可能在编译时生成,但可以推迟到程序运行时 跑步动态性为Objective-C程序提供了不同寻常的灵活性和灵活性 权力例如,它产生了两个难以获得的巨大好处 使用其他名义上面向对象的语言:

Objective-C支持动态绑定的开放样式,即 可以为交互式用户界面提供简单的体系结构。 消息不一定受 接收器,甚至方法名称,因此软件框架可以允许 供用户在运行时选择,并允许开发人员自由 设计中的表达。(动态绑定等术语, 消息、类和接收者将在适当的时候在本文中进行解释 文档。)动态性支持构建复杂的 开发工具。运行时系统的接口提供访问权限 获取有关运行应用程序的信息,以便开发 用于监视的工具