个性化阅读
专注于IT技术分析

入门编程介绍 – Objective-C编程快速入门教程

关于Objective-C

Objective-C是为OS X和iOS编写软件时使用的主要编程语言。它是C编程语言的超集,提供面向对象的功能和动态运行时。Objective-C继承了C语言的语法、基本类型和流控制语句,并增加了定义类和方法的语法。它还增加了对对象图管理和对象文本的语言级支持,同时提供了动态类型和绑定,将许多职责延迟到运行时。

Objective-C概述

本文档介绍了Objective-C语言,并提供了大量使用示例。你将了解如何创建自己的类来描述自定义对象,并了解如何使用Cocoa和Cocoa Touch提供的一些框架类。尽管框架类与语言是分离的,但它们的使用紧密地结合在Objective-C的编码中,许多语言级别的特性依赖于这些类提供的行为。

应用程序是由对象网络构建的

在为OS X或iOS构建应用程序时,你将花费大量时间处理对象。这些对象是Objective-C类的实例,有些是Cocoa或Cocoa Touch提供的,有些是你自己写的。

如果你正在编写自己的类,那么首先要提供类的描述,详细说明该类实例的公共接口。此接口包括用于封装相关数据的公共属性,以及方法列表。方法声明指示对象可以接收的消息,并包含在调用方法时所需的参数信息。你还将提供一个类实现,其中包括接口中声明的每个方法的可执行代码。

相关章节:定义类,处理对象,封装数据

类别扩展现有类

与其创建一个全新的类来在现有类上提供次要的附加功能,还不如定义一个类别来向现有类添加自定义行为。你可以使用类别向任何类添加方法,包括你没有原始实现源代码的类,如NSString之类的框架类。

如果你拥有类的原始源代码,则可以使用类扩展来添加新属性,或修改现有属性的属性。类扩展通常用于隐藏私有行为,以便在单个源代码文件中使用,或者在自定义框架的私有实现中使用。

相关章节:自定义现有类

协议定义消息传递契约

Objective-C应用程序中的大部分工作都是对象互相发送消息的结果。通常,这些消息是由类接口中显式声明的方法定义的。然而,有时能够定义一组不直接绑定到特定类的相关方法是很有用的。

Objective-C使用协议来定义一组相关的方法,比如一个对象可能会调用它的委托的方法,这些方法要么是可选的,要么是必需的。任何类都可以表明它采用协议,这意味着它还必须为协议中所有必需的方法提供实现。

相关章节:使用协议

值和集合通常表示为Objective-C对象

在Objective-C中使用Cocoa或Cocoa Touch类来表示值是很常见的。NSString类用于字符串,NSNumber类用于不同类型的数字(如整数或浮点数),NSValue类用于其他值(如C结构)。你还可以使用C语言定义的任何基本类型,比如int、float或char。

集合通常表示为一个集合类的实例,如NSArray、NSSet或NSDictionary,它们分别用于收集其他Objective-C对象。

相关章节:值和集合

块简化了常见的任务

块是C、Objective-C和c++中引入的一种语言特性,用来表示一个工作单元;它们封装了一块代码和捕获的状态,这使得它们类似于其他编程语言中的闭包。块通常用于简化常见的任务,如集合枚举、排序和测试。它们还使得使用诸如Grand Central Dispatch (GCD)之类的技术来为并发或异步执行调度任务变得很容易。

相关章节:处理块

用于运行时问题的错误对象

虽然Objective-C包含了异常处理的语法,但是Cocoa和Cocoa Touch只对编程错误使用异常(比如数组越界访问),这些错误在应用程序发布之前应该被修复。

所有其他错误——包括运行时问题,如磁盘空间耗尽或无法访问web服务——都由NSError类的实例表示。你的应用程序应该为错误做好计划,并决定如何最好地处理它们,以便在出错时呈现最佳的用户体验。

相关章节:处理错误

Objective-C代码遵循既定的惯例

在编写Objective-C代码时,你应该记住一些已建立的编码惯例。例如,方法名以小写字母开头,对多个单词使用驼峰大小写;例如,doSomething或doSomethingElse。然而,重要的不仅仅是唯一;你还应该确保你的代码尽可能具有可读性,这意味着方法名称应该具有表达性,但不要太冗长。

此外,如果希望利用语言或框架特性,还需要一些约定。例如,属性访问器方法必须遵循严格的命名约定,以便使用键值编码(KVC)或键值观察(KVO)等技术。

相关章节:编程约定

先决条件和学习准备

如果你是OS X或iOS开发者,你应该阅读开始开发iOS应用或开始开发Mac应用,在阅读本文之前,得到一个总体概述iOS和OS X应用程序开发过程的另外,你应该熟悉Xcode之前试图遵循大多数章节的练习结束时在这个文档。Xcode是用于为iOS和OS X构建应用程序的IDE;你将使用它来编写代码、设计应用程序的用户界面、测试应用程序和调试任何问题。

虽然最好对C语言或基于C的语言(如Java或c#)有一定的了解,但本文确实包含了一些C语言基本特性(如流控制语句)的内联示例。如果你了解另一种高级编程语言(如Ruby或Python),你应该能够理解其中的内容。

本文对一般的面向对象编程原则进行了合理的介绍,特别是当它们在Objective-C环境中应用时,但是假定你至少对基本的面向对象概念有一定的了解。如果你不熟悉这些概念,你应该阅读Objective-C编程概念中的相关章节。

另请参阅

本文档中的内容适用于Xcode 4.4或更高版本,并假设你的目标是OS X v10.7或更高版本,或iOS 5或更高版本。有关Xcode的更多信息,请参见Xcode概述。有关语言特性可用性的信息,请参见Objective-C特性可用性索引。

Objective-C应用程序使用引用计数来确定对象的生存期。在大多数情况下,编译器的自动引用计数(ARC)特性会为你处理这个问题。如果你无法利用ARC,或者需要转换或维护手动管理对象内存的遗留代码,你应该阅读Advanced memory Management Programming Guide。

除了编译器,Objective-C语言还使用运行时系统来支持其动态和面向对象的特性。虽然你通常不需要担心Objective-C是如何“工作”的,但是你可以直接与这个运行时系统交互,就像Objective-C运行时编程指南和Objective-C运行时参考所描述的那样。

赞(0)
未经允许不得转载:srcmini » 入门编程介绍 – Objective-C编程快速入门教程

评论 抢沙发

评论前必须登录!