IOS开发之NSObject协议类方法说明

oc中NSObject类是所有类的基类,所有类都要继承自它,那么它的方法就显得特别重要,因为所有类都会有这些基本的方法.

看看oc的源码中NSObject是这样定义的:

@interface NSObject <NSObject> {

    Class isa  OBJC_ISA_AVAILABILITY;

}

可以看出,它实现了NSObject协议,下面我们来看看NSObject协议中定义的方法和属性。顺便将它归类为7大类

@protocol NSObject

 //*****1.识别类*****
@property (readonly) Class superclass;//返回超类对象
- (Class)class;//返回类对象

//*******2.识别与比较对象**********
- (BOOL)isEqual:(id)object;//首先判断两个对象是否类型一致,如不一致,直接返回NO,再判断具体内容是否一致
@property (readonly) NSUInteger hash;//返回一个整数,可以用来作为哈希表结构中的表地址
- (instancetype)self;//返回当前对象

//**********3.判断继承关系、是否是某类及是否有某种行为(方法)************

- (BOOL)isKindOfClass:(Class)aClass;//判断是否是这个类或者这个类的子类的实例
- (BOOL)isMemberOfClass:(Class)aClass;//判断是否是这个类的实例 与isKindOfClass的区别在于它只能判断类,不能判断子类
- (BOOL)respondsToSelector:(SEL)aSelector;//判断是否实现了某方法
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;//判断是否实现了某协议

//*********4消息传递********
- (id)performSelector:(SEL)aSelector;//将指定的消息配送到接收器,应用aSelector指定的消息
- (id)performSelector:(SEL)aSelector withObject:(id)object;//同上 可以接受一参数
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; //同上,可接受两对象参数

//*******5属性描述******
@property (readonly, copy) NSString *description;//对象返回一个字符串来描述它的内容
@property (readonly, copy) NSString *debugDescription;//返回一个字符串,描述在调试器中的接收器演示的内容

//****6确定代理***********
- (BOOL)isProxy;//判断是否接收器是否从NSObject继承

//*******7管理内存的方法********************
- (instancetype)retain OBJC_ARC_UNAVAILABLE;//增加对象的计数器
- (oneway void)release OBJC_ARC_UNAVAILABLE;//减少对象的计数器
- (instancetype)autorelease OBJC_ARC_UNAVAILABLE;//自动减少对象的计数器,但是以推迟的方式来实现
- (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE;//返回一个对象当前的计数器
- (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;//垃圾自动回收

@end

 

转载于:https://www.cnblogs.com/hj2xx2hj/p/5036178.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值