Introduction to The Objective-C Programming Language
面向对象C语言编程简介:
面向对象的C语言是一种简单的计算机语言,设计的目的是为了进行高级的面向对象编程。面向对象的C语言被定义成对标准C语言的小而强大的扩展集合。是对C语言的扩展但是主要基于Smalltalk语言,最早的面向对象编程语言之一。设计面向对象的C语言是为了给C语言完全的面向对象编程能力,通过一种简单直接的方法。
大部分面向对象开发环境由若干部分组成:
- 一种面向对象的编程语言
- 一个对象库
- 一套开发工具
- 一个运行环境
这篇文章是关于开发环境的第一个部分—编程语言,完全地描述了面向对象C语言,并且提供了学习第二个部分的基础,Mac OS X 的面向对象C语言应用框架—统称为 Cocoa. 你可以开始学习更多有关Cocoa 通过文章Getting Started with Cocoa. 你可以用的两种主要的开发工具是 Xcode 和 Interface Builder, 可从该网页获得描述 Xcode Workspace Guide 和Interface Builder 单独的. 运行时环境在另外单独的文档里描述: Objective-C Runtime Programming Guide.
注意: 该文档描述的Objective-C的版本是发布在苹果电脑 Mac OS X v10.6 上的, 引入了新特性:associative references (see“Associative References” ). 想学习Objective-C的1.0版本(在苹果电脑 Mac OS X v10.4 或者更早的版本上可用), 请阅读: Object Oriented Programming and the Objective-C Programming Language 1.0.
谁应该阅读该文档
该文档是为有可能对以下内容有兴趣的读者准备的:
- 使用 Objective-C 编程
- 想了解 Cocoa 应用框架的基础原理相关的内容
该文档即介绍了实现 Objective-C语言的面向对象模型,同事也完整的介绍了该语言。重点在于Objective-C对C语言的扩展部分,而不是C语言本事。
由于这不是一篇介绍C语言的文档,它假定我们之前了解C语言。但是,也不需要深入的了解。基于Objective-C的面向对象编程和之前基于标准C语言的编程有很大的不同,因此你不会有太大的障碍即使你不是一个有经验的C程序员。
该文档的结构
本文档分为若干章节和一个附录。
下面的章节涵盖了所有Objective - C对标准C语言扩展的功能。
定义一个类
协议
属性声明
类别和扩展
关联引用
快速枚举
启用静态行为
选择器
异常处理
线程
苹果的编译器基于GNU的编译器系列。Objective-C 的语法是 GNU C/C++ 语法的超集,并且Objective-C 的编译器适用于C, C++ 和Objective-C 的源代码. 编译器识别 Objective-C 的代码文件是通过文件扩展名.m
, 就像它识别仅包含标准C语法的文件是通过文件扩展名.c, 同样的, 编译器识别使用Objective-C语言的C++文件是通过文件扩展名
.mm
, 其它的在Objective-C 里使用 C++ 的疑问涵盖在如下文档里:“Using C++ With Objective-C.”
附录里包含的参考资料或许对理解该语言有很大的帮助:
- “Language Summary” 列举并简要的评论了所有 Objective-C 对 C 语言的扩展。
约定
当本文档导论函数,方法和其他编程元素的时候, 使用了特殊的计算机语言和斜体字。计算机语言表示单词或者字符直接字面的拿来用(写成和他们一样的--就是C语言中的关键词了). 斜体表示能表现为其他东西或者是变化的(比如变量名等)。
比如, 语法:
@interface
ClassName(
CategoryName)
表示 @interface
和一对圆括号是必须的, 但是你可以选择类名和分类名。
当显示示范代码的时候,省略号表示的部分,通常是内容填充部分,已经省略了:
- (void)encodeWithCoder:(NSCoder *)coder
{
[super encodeWithCoder:coder];
...
}
涉及到的附录里的约定在附录本身描述了。
另请参阅
如果你从来没有用过面向对象编程来创建过应用程序,你应该阅读:Object-Oriented Programming with Objective-C. 你应该也要考阅读下它如果你用过其他的面向对象开发环境比如说:C++,JAVA,因为它们和Objective-C有很多不同的例外情况和约定。Object-Oriented Programming with Objective-C 的设计师为了帮助你熟悉面向对象的开发,向一个 Objective-C的开发者方向发展。它阐述了一些面向对象设计的实现,给你一些提示真正的编写面向对象的程序是啥样的。
运行环境(运行时)
Objective-C Runtime Programming Guide 描述了Objective-C 运行时的一些情况和你如何去使用它。
Objective-C Runtime Reference描述了Objective-C 运行时支持库的数据结构和函数。你的程序可以使用这些接口来和Objective-C的运行时系统交互。比如:你可以添加一个类或者方法,或者获得一个所有已加载得的类定义的列表。Objective-C Release Notes 描述了在最新版本的 Mac OS X的一些Objective-C运行环境的变化。
内存管理
Objective-C 支持两种内存管理的环境,垃圾自动回收和引用计数:
Garbage Collection Programming Guide 描述了 Cocoa使用的垃圾回收机制。(iPhone上不支持—所以你无法通过iPhone的开发中心访问此文档.)
Memory Management Programming Guide for Cocoa 描述了Cocoa使用的引用计数系统。
注:本文章是直接翻译的苹果官方网页上的的资料,不会随着网页的变化而及时变化,最新官方网页请参考
https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html
欢迎朋友们指导修改~~~~
作者(Author):smilelance