Objective-c学习笔记01——简介


Objective-C可以开发apple家族系列产品的软件,这里记录成笔记方便日后复习:

Objective-c简介:

Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C最主要的描述是他1986年出版的Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.

学习OC说明:

如果您未曾开发过 iOS 或 Mac OS X 平台的程序,那就需要开始了解它们的首要程序设计语言 Objective-C。Objective-C 并不是一种很难的语言,如果能花一点时间学习,相信您会渐渐领会到它的优雅之处。Objective-C 程序设计语言使您能进行复杂的、面向对象的编程。通过提供用于定义类和方法的语法,它扩展了标准的 ANSI C 程序设计语言。它还促进类和接口(任何类可采用)的动态扩展。
如果您熟悉 ANSI C,那么下述信息应该能帮助您学习 Objective-C 的基本语法。如果您使用其他面向对象程序设计语言进行过编程,您会发现许多传统的面向对象概念,例如封装、继承、多态,都出现在 Objective-C 中。如果您不熟悉 ANSI C,在尝试阅读此文章时,最好先阅读一下 C 语言的概述。
Objective-C 语言在《The Objective-C Programming Language》(Objective-C 程序设计语言)中有完整说明。
Objective-C 是 C 语言的超集
Objective-C 程序设计语言采用特定的语法,来定义类和方法、调用对象的方法、动态地扩展类,以及创建编程接口,来解决具体问题。Objective-C 作为 C 程序设计语言的超集,支持与 C 相同的基本语法。您会看到所有熟悉的元素,例如基本类型(int、float 等)、结构、函数、指针,以及流程控制结构,如 if…else 语句和 for 语句。您还可以访问标准 C 库例程,例如在 stdlib.h 和 stdio.h 中声明的那些例程。
Objective-C 为 ANSI C 添加了下述语法和功能:
定义新的类
类和实例方法
方法调用(称为发消息
属性声明(以及通过它们自动合成存取方法)
静态和动态类型化
块 (block),已封装的、可在任何时候执行的多段代码
基本语言的扩展,例如协议和类别

学习目标:

1、掌握面向对象的概念,能清晰区别面向对象与面向过程。
2、能清晰分辨类和对象的区别,掌握类的定义(包括变量、方法)、对象的创建。
3、深刻理解self和super关键字,掌握属性的定义和使用,理解属性的属性。
4、掌握便利构造器的原理以及使用,熟练使用单例。
5、深刻理解内存管理,理解ARC。
6、理解MVC模型,掌握KVC以及KVO,掌握NSNotification原理。
7、会熟练扩展一个类。
8、熟练使用Objective-C各种数据类型以及快速枚举。
9、会使用时间相关的类以及API。
10、掌握文件管理,会管理程序内的文件和数据。
11、掌握网络请求流程,熟练使用网络编程。
12、了解IOS基本空间,熟悉UI的用法。
13、使用简单的UI结合OC语法做出一个综合项目

说明

最近正在学习OC,为了方便以后自己查阅,特记录此笔记,如果对同样学习OC的人能有所帮助,是最好不过了。笔记主要是根据《Objective-C 程序设计(第4版)》、与李明杰老师的视频为基础,另外也参考了很多的博客,本系列笔记有可能出现以上来源中的代码,还请原作者谅解,如有不妥请及时联系。

学习大纲

一、OC简介
二、oc语法
三、面向对象:
1、什么是面向对象
2、类和对象
3、OC中的类
4、对象的创建和使用
5、继承
6、初始化方法
7、Self、super关键字
8、便利构造器
9、单例
10、属性
11、点语法
12、封装
四、:内存管理概述
1、内存管理的原理-引用计数
2、内存管理的原则
3、内设置器、访问器的内存管理
4、内便利构造器内存管理
5、内自动管理内存机制-ARC
五、 常用数据类型:
1、字符串
2、 数值对象
3、 集合之数组
4、集合之字典
5、集合之NSSet集
6、集合与内存管理
7、快速枚举