Contents
  1. 关于Objective-C
  2. 一眼看去
  3. 从一堆对象中搭建起来的应用
  4. 拓展现有类的类
  5. 定义消息合同的协议
  6. 值和集合通常代表Objective-C对象
  7. 简化常见任务的Block
  8. 用于运行时问题的Error对象
  9. Objective-C代码遵循既定的惯例
  10. 先决条件
  11. 参考
  12. (我的本篇总结)

关于Objective-C

Objective-C是一门编写OS XiOS上软件的初级语言。它是C语言的子集,并且提供了面向对象的能力和动态的运行时。Objective-C继承了C的语法,基本类型,并遵循了C的控制语句(control statements),并且为定义类和方法添加了新的语法。Objective-C也添加了对对象图文在语言层面的支持,提供了动态类型和绑定,让很多任务在运行时中处理。


一眼看去

这份文档包含了Objective-C语法并且提供了大量的应用示例。你将学会如何创建类来描述你的自定义对象,还有如何使用Cocoa, Cocoa Touch框架提供的一些类。虽然这些框架类和这门语言是分离的,但框架类的使用深深地植入在Objective-C编程中,并且很多语言功能特性依赖于框架类提供的方法。


从一堆对象中搭建起来的应用

当开发OS XiOS应用的时候,你将把大部分时间花在对象上。这些对象就是Objective-C类的实例。有一些是有由CocoaCocoa Touch提供的,而有一些则将由你自己编写。

如果你正在写你自己的类,先提供这个类的描述,估计该类实例对象所公开的细节。接口包含了封装相关数据的公有属性和方法。方法的声明隐示着一个对象可以接收哪种消息,并包括在调用方法时所需的参数的信息。您还得提供该类实现代码,包括在类接口中所声明方法的可执行代码。

关联章节: 定义类, 运用对象, 封装数据


拓展现有类的类

在现有的类上提供一点额外添加的功能,与其创建一整个新的类,不如在现有类上定义一个类别去添加自定义功能。你可以在任意类上使用类别添加任何方法,包括你没有其实现源代码的类,如框架类像NSString.

关联章节: 自定义现有的类


定义消息合同的协议

Objective-C应用中,大部份工作的发生是对象之间互相发送消息的结果。通常这些消息是清晰地定义在类接口的方法中。然而有时候,定义一组不直接绑到一个特定的类的相关方法是很有帮助的。

Objective-C运用协议定义一组相关的方法,如在对象里称为委托的方法,方法是可选或着必要的。任何类都可以表示它采用了一个协议,这意味着它还必须提供协议中所有必要的方法的实现。

关联章节: 运用协议


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

使用CocoaCocoa Touch类来代表各种值在Objective-C中很常见,NSString类用于字符串,NSNumber类用于不同类型的号码,如整数或浮点数,NSValue类则用于其他结构如C的结构体。你也可以使用任何由C语言定义的基本类型,如int,float或字符。
集合通常表示为一个集合类的实例,如NSArrayNSSet,或NSDictionary,用来收集其他的Objective-C对象。

关联章节: 值和集合


简化常见任务的Block

块是CObjective-CC++的一个引入的语言特性,代表一个任务单位;它封装了一个代码块及其状态,类似于其他的编程语言中的闭包。块通常用来简化常见的任务,如集合枚举、排序和测试。块也更容易地使用Grand Central Dispatch(GCD)技术并发或异步执行任务。

关联章节: 运用Block


用于运行时问题的Error对象

虽然Objective-C包括异常处理的语法,但是CocoaCocoa Touch只在编译错误(如数组越界访问)报异常,这是应用程序在上线前应该解决的问题。
所有其他错误,包括运行时的问题,如磁盘空间用尽或无法访问Web服务则用NSError的实例对象来表示。您的应用程序应该预计可能出现的错误,并计划如何最好地处理它们,以呈现最佳的用户体验。

关联章节: 处理错误


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

编写Objective-C代码时,你应该记住一些既定的编码惯例。例如,方法名以小写字母开头,用驼峰命名法的情况下多个词;例如,doSomethingdoSomethingElse。这不只是大写的重要性,你还应该确保你的代码尽可能的可读,这意味着方法名称应该表达清楚,但不要太罗嗦。

此外,如果你想利用语言或框架的功能,有一些惯例是必需的。例如,存储属性的方法,必须遵循严格的命名规范,以适用于键值编码(KVC)或键值观察(KVO)技术。

关联章节: 惯例


先决条件

如果你是OS XiOS开发新手,你可以阅读本文档之前先阅读今天着手开发iOS应用程序今天着手开发Mac应用程序,对iOSOS X此外应用开发过程有个大致的概念。特别地,你应该通过练习大部分章节末尾的作业来熟悉Xcode。Xcode是用来为iOSOS X的构建应用程序的IDE;你会用它来编写你的代码,设计你应用程序的界面,测试你的应用程序,并调试任何出现的问题。
虽然用CC的基础语言如javaC#有些熟悉的是更好的,这个文档不包括C语言基本特性的内联的例子,如流程控制语句。如果你有一个高层次的编程语言知识,如RubyPython,你应该可以跟循本文内容。
(文档)适度描述了一般的面向对象编程规则,尤其是当它们应用在Objective-C语言环境中,但本文假定你至少有一点点熟悉面向对象的基本概念。如果你还不熟悉这些概念,你应该阅读在Objective-C编程概念的相关章节。


参考

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

Objective-C程序使用引用计数来确定对象的生命周期。在大多数部分中,编译器的自动引用计数(ARC)功能为您的。如果您无法利用ARC,或需要转换或维护传统的代码,管理一个对象的内存,你应该阅读先进的内存管理编程指南

除了编译器,Objective-C使用运行时系统,使其具有动态的、面向对象的功能。通常你不需要担心Objective-C是如何工作的,直接与运行时系统进行交互也是可以的,如文档Objective-C编程指南Objective-C运行时参考所描述的。


(我的本篇总结)

别看这是开篇,中文看起来就这么点,我借用工具还是花了很多时间去校对的,因为有些句子可以翻译成多种含义,有时候需要考虑哪一种意思表达的最清楚贴切,对自己的翻译思维确实有很大的帮助。可以看出Apple的文档入门指南还是为新手考虑很多的。我觉得这个系列还是比较重要的.

原文:Programming with Objective-C

Contents
  1. 关于Objective-C
  2. 一眼看去
  3. 从一堆对象中搭建起来的应用
  4. 拓展现有类的类
  5. 定义消息合同的协议
  6. 值和集合通常代表Objective-C对象
  7. 简化常见任务的Block
  8. 用于运行时问题的Error对象
  9. Objective-C代码遵循既定的惯例
  10. 先决条件
  11. 参考
  12. (我的本篇总结)