Objective c学习
特殊的空类型 nil,该类型没有名称,空引用(nil)是空类型变量唯一的值,该类型可以转换为任何引用类型
Ios系统中short int 2字节, int 4字节,long int 4字节,longlon所引用的对象的引用计数减1,,全称为autoreleasepool
Objective c支持点语法的访问,前提是该对象包含setter方法
KVC(key value coding)允许以字符串的形式间接地操作对象的属性
KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。
Objective c中没有构造方法,对象的初始化有对应的init方法,可以在类中重写init方法也可以自定义任意名称的初始化方法。
Objective c中没有多继承的概念
Super关键字与java中使用方法类似,可以直接在子类中调用父类被覆盖的实例方法
子类接口不允许定义与父类接口部分重名的成员变量,不论父类的成员变量是否是私有;而在实现部分没有限制
在objective c中没有接口类和抽象类的概念
Objective c的包装类是为了让c语言的基本类型具有面向对象的特征
NSInteger、NSUInteger、CGFLoat并不是包装类
NSValue和NSNumber都是包装类,一般用NSNumber较多,包含3类方法:+numberWithXXX、-initWithXXX、-XXXValue,用这些方法可以将基本类型转换为包装类
Description 方法是NSObject类的方法,可以描述当前的类
==与isEqual的区别:本质上没有区别,但isEqual方法是NSObject类的实例方法可以被重写,可以提供自定义的相等标准。与java不同的地方是,objective c中另外有一套isEqualToString方法来判断两个字符串是否相等
Objective c中没有提供抽象类的语法支持,但可以用类簇(cluster)来进行模拟
类别(category)objective c 允许使用类别为现有的类添加新方法,并且不需要创建子类,不需要访问原有类的源代码。定义类别时必须使用圆括号来包含类别名类别中通常只定义方法。一般习惯将类别的接口文件定义成“类名+”的形式。类别也可以重写原有类的方法,但通常不建议这么做。可以使用子类来重写。
可以使用类别来对类进行模块化设计,目的是解决一个类特别大时将不同的实现方法放在不同的类中。
扩展(extension)与类别相似,扩展相当于匿名类别。
协议是objective c里的重要知识点,作用类似于接口,用于定义多个类应该遵守的规范,可以使用类别实现非正式协议;也可以直接定义正式的协议,正式的协议不再使用***@interface、***@implementation关键字而是使用***@protocol关键字。Objective c协议的功能基本等同于接口,而接口的实现也等同于遵守协议,遵守协议也可以说成是实现协议。
定义的协议可以把协议定义的方
ios学习笔记 来自淘豆网m.daumloan.com转载请标明出处.