Yahoo Web Search

  1. About 2,360,000 search results
  1. en.wikipedia.org › wiki › Objective-CObjective-C - Wikipedia

    Objective-C is a thin layer atop C and is a "strict superset" of C, meaning that it is possible to compile any C program with an Objective-C compiler and to freely include C language code within an Objective-C class. Objective-C derives its object syntax from Smalltalk. All of the syntax for non-object-oriented operations (including primitive ...

    • 1984; 37 years ago
    • Tom Love and Brad Cox
  2. Jun 05, 2019 · Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It was the main programming language supported by Apple for the macOS, iOS and iPadOS operating systems, and their respective application programming interfaces (APIs) Cocoa and Cocoa Touch until the introduction of Swift. The programming language Objective ...

  3. People also ask

    What is the difference between Objective C and Objective C + +?

    What's the difference between Objective C and Swift?

    What does Objective C 2.0 do for optional methods?

    Where do interfaces and implementations go in Objective C?

  4. Objective-C was created in the early 1980s by two programmers named Brad Cox and Tom Love. It didn't become popular, however, until it was bought by NeXT in 1988 for their NeXTSTEP operating system. After NeXT was bought by Apple in 1996, it became the main programming language for Mac OS X and later the iPhone, iPod Touch and iPad.

    • 历史
    • 语法
    • 语言变化
    • 语言分析
    • 争议
    • 外部链接

    Objective-C 主要由 Stepstone(英语:Stepstone) 公司的布莱德·考克斯(Brad Cox)和 汤姆·洛夫(英语:Tom Love)(Tom Love) 在 1980 年代发明。 1981年 Brad Cox 和 Tom Love 还在 ITT 公司技术中心任职时,接触到了 SmallTalk语言。Cox 当时对软件设计和开发问题非常感兴趣,他很快地意识到 SmallTalk语言 在系统工程构建中具有无法估量的价值,但同时他和 Tom Love 也明白,目前 ITT 公司的电子通信工程相关技术中,C 语言被放在很重要的位置。 于是 Cox 撰写了一个 C 语言的预处理器,打算使 C 语言具备些许 Smalltalk 的本领。Cox 很快地实现了一个可用的 C 语言扩展,此即为 Objective-C语言的前身。到了 1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关函式库商品化贩售,并在之后将公司改名为StepStone。1986年,Cox 出版了一本关于 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,书内详述了 Objective-C 的种种设计理念。 1988年,斯蒂夫·乔布斯(Steve Jobs)离开苹果公司后成立了 NeXT Computer 公司,NeXT 公司买下 Objective-C 语言的授权,并扩展了著名的开源编译器GCC 使之支持 Objective-C 的编译,基于 Objective-C 开发了 AppKit(英语:Application Kit) 与 Foundation Kit(英语:Foundation Kit)等函式库,作为 NeXTSTEP 的的用户介面与开发环境的基础。虽然 NeXT 工作站后来在市场上失败了,但 NeXT 上的软体工具却在业界中被广泛赞扬。这促使 NeXT 公司放弃硬体业务,转型为销售NeXTStep(以及OpenStep)平台为主的软体公司。 1992年,自由软件基金会的 GNU 开发环境增加了对 Objective-C 的支持。1994年,NeXT Com...

    Objective-C是C语言的严格超集--任何C语言程式不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk讯息传递风格。所有其他非面向对象的语法,包括变数型别,预处理器(preprocessing),流程控制,函数声明与调用皆与C语言完全一致。但有些C语言语法合法代码在objective-c中表达的意思不一定相同,比如某些布尔表达式,在C语言中返回值为true,但在Objective-C若与yes直接相比较,函数将会出错,因为在Objective-C中yes的值只表示为1.

    Objective-C++

    Objective-C++是GCC的一个前端,它可以编译混合了C++与Objective-C语法的源文件。Objective-C++是C++的扩展,类似于Objective-C是C的扩展。由于在融合C++与Objective-C两种语言的特性方面没有做特别的工作,因此有以下限制: 1. C++类不能从Objective-C类继承,反之亦然。 2. Objective-C定义内部不能定义C++命名空间。 3. Objective-C类的成员变量不能包括不含默认构造函数和/或含有虚方法的C++类对象,但使用C++类指针并无如此限制(可以在 -init方法中对之进行初始化)。 4. C++“传递值”的特性不能用在Objective-C对象上,而只能传递其指针。 5. Objective-C声明不能存在在C++模板声明中,反之亦然。但Objective-C类型可以用在C++模板的参数中。 6. Objective-C和C++的错误处理语句不同,各自的语句只能处理各自的错误。 7. Objective-C错误使得C++对象被退出时,C++析构函数不会被调用。新的64位运行时解决了这个问题。

    Objective-C 2.0

    在2006年7月苹果全球开发者会议中,Apple宣布了“Objective-C 2.0”的发布,其增加了“现代的垃圾收集,语法改进,运行时性能改进,以及64位支持”。2007年10月发布的Mac OS X v10.5中包含了Objective-C 2.0的编译器。

    Modern Objective-C

    苹果公司在 WWDC2012 大会上介绍了大量 Objective-C 的新特性,能够让程序员更加高效地编写代码,这些新特性在 Xcode4.4 版本中已经可以使用。 1. Object Literals 2. 默认生成 @synthesize 代码 3. 遍历元素 4. Subscripting Methods

    Objective-C是非常“实际”的语言。它用一个很小的、用C写成的运行库,使得应用程式的大小增加很少,与此相比,大部分OO系统需要极大的运行时虚拟机来执行。Objective-C写成的程式通常不会比其原始码和函式库(通常无需包含在软体发行版本中)大太多,不会像Smalltalk系统,即使只是打开一个窗口也需要大量的容量。由于Objective-C的动态类型特征,Objective-C不能对方法进行内联(inline)一类的优化,使得Objective-C的应用程序一般比类似的C或C++程序更大。 Objective-C可以在现存C编译器(英语:List of compilers#C compilers)基础上实现(在GCC中,Objective-C最初作为预处理器引入,后来作为模块存在),而不需要编写一个全新的编译器。这个特性使得Objective-C能利用大量现存的C代码、库、工具和编程思想等资源。现存C库可以用Obj-C包装器来提供一个Objective-C使用的OO风格界面包装。 以上这些特性极大地降低了进入Objective-C的门槛,这是1980年代Smalltalk在推广中遇到的最大问题。

    Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用,Objective-C为避免此问题才不拥有这个功能。某些第三方版本加入了这个功能(尤是GNUstep),苹果公司也在其Mac OS X 10.5中提供了实现。 另一个广受批评的问题是Objective-C不包括命名空间机制。取而代之的是程式设计师必须在其类别名称加上前缀,由于前缀往往较短(相比命名空间),这时常引致冲突。在2007年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分辨它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。 虽然Objective-C是C的严格超集,但它也不视C语言的基本型別为第一级的物件。 和C++不同,Objective-C不支援运算子多载(它不支持特设多态)。亦与C++不同,但和Java相同,Objective-C只容许物件继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。[来源请求] 由于Objective-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于Objective-C(例如:内联函数、常数传播、交互式优化(英语:Interprocedural optimization)、聚集的纯量取代等)。这使得Objective-C性能劣于类似的对象抽象语言(如C++)。不过Objective-C拥护者认为Objective-C本就不应应用于C++或Java常见的底层抽象,Objective-C的应用方向是对性能要求不大的应用

    苹果官方Objective-C开发说明文档(页面存档备份,存于互联网档案馆)
    Objective-C教学(页面存档备份,存于互联网档案馆)
  5. www.wikipedia.orgWikipedia

    Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.

  6. sq.wikipedia.org › wiki › IOSIOS - Wikipedia

    C, C++, Objective-C: Familja OS: OS X, UNIX: Shteti: Current: Burimi: Closed source: Publikimi fillestar: Korrik 29, 2007; 14 vite më parë () Publikimi fundit: iPhone 3GS, 4, 4S and 5 iPad 2, 3, 4 iPad Mini iPod Touch 4th generation and 5 (Mars 19, 2013; 8 vite më parë ()) Apple TV 2nd and 3rd generations

  1. People also search for