NSObject 为啥要遵循 NSObject 协议呢 ?

2020-06-22  本文已影响0人  天空中的球
小伙伴无意间发出的一个疑惑,NSObject 为啥要遵循 NSObject 协议呢 ?
NSObejct

首先看看协议中有哪些, 都是我们常见的方法:

- (BOOL)isProxy;
- (BOOL)isKindOfClass:(Class)aClass;
- (BOOL)isMemberOfClass:(Class)aClass;
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
- (BOOL)respondsToSelector:(SEL)aSelector;

经过查找发现:

延伸:

NSProxy 也是遵循 <NSObject> 协议的

NSProxy

理解:

综上原因和相关:
  • 1、为了兼容 Objective-C 2.0 的新增的特性,来保证我们调用的安全性。
  • 2、NSObject的类和协议在Objective-C中存在于不同的命名空间。我们可以同时拥有相同的类和协议,但是他们在编程语言上是不相关联的, 所以没有关系。
  • 3、无形中也是在解耦的。

总结: 一个 NSObject 协议允许多个根类拥有相同的基础方法,所以我们能很方便的声明一个包含了相同基础功能的协议 。
而 NSObject 类遵循了 NSObject 协议,就可以把所有的东西融合到一起啦。

笔记来源:

上一篇下一篇

猜你喜欢

热点阅读