A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王明耀 中级黑马   /  2015-8-12 22:07  /  764 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第五天 @property 和构造方法
点语法的实质是 调用(调用get/set方法)
   运用点语法时候  如果是在等号的左边则调用的是set方法
在等号右边的是调用的get方法
注意点语法中运用self运用点语法 会造成死循环(自身调用自身而且没有结束的条件)
@property int  age;
  生成实例变量_age的get/set方法的声明和实现
Xcode 默认生成的是@synthesize name;
如果指定带下划线的则应该重新定义一个带下划线的成员变量
@synthesize name = _name;
setter/getter不可以同时重写,会报错(只能重写一个)

动态类型 直到执行的时候才确定所属的类型
静态类型 在编译时就知道它所属的类型
id 可以存储于任何类的对象 (万能类)
NSObject 会进行编译检查
id 不会进行编译检查(运行的时候才会检测)

instancetype  id 都可以作为方法的返回值
id  返回未知类型对象
instancetype 返回的是确定类型的对象(instancetype 是iOS5以后出现的)
instancetype 只能返回和方法所在的相同类型对象
id 可以用来定义对象
instancetype  不可以定义对象
一个对象能调用指定方法,不由编译器决定由运行时决定
对象运行时获取其类型的能力(内省)
-(BOOL)isKindOfClass:classObj  
(dog isKindOfClass:Animal)(返回值是0或者1)
判断对象是否是这个类或这个类的子类的实例对象
1、isKindOfClass:Class
判断实例对象是否是这个类或者这个类的子类的实
例。

2、isMemberOfClass:Class
判断是否是这个类的实例。

3、+(BOOL) isSubclassOfClass:classObj
判断类是否是指定类的子类。

4、respondToSelector:selector
确定对象是否可以对某个SEL做出响应

5、+(BOOL) instancesRespondToSelector:
判断类是否有这个方法。此方法是类方法, 不能用在类的对象


6、conformsToProtocol:protocol
检查对象是否符合协议,是否实现了协议中所有的必选方法。



构造方法
   用来初始化对象的方法
1. 使用alloc方法分配内存(内存已被清零)
2.使用init方法来对 对象初始化
3.返回 对象首地址

nil:  oc中对象中的空值
null: 服务器返回字段的空值
NULL: C语言指针变量空值
NIL:  类对象的空值
init
   1.初始化父类的东西(为了保证父类的初始化)
   2.判断父类有没有返回成功
   3.返回self
self = [super init];  给self赋值
子类和父类的self指向的是同一个空间
自定义构造方法的格式
   1.一定是对象方法(以减号开头)
   2.返回值一般是id类型(instancetype)
   3.方法名一定已initwith开头

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马