和c++与Java一样,objective c也支持run-time的类类型检查
- (BOOL) isKindOfClass: classObj 
用于判断该对象是否属于某个类或者它的子类。

// true 

如: if( [sq isKindOfClass: [Rectangle class]] == YES ) {} 

- (BOOL) isMemberOfClass: classObj
用于判断该对象是否属于某个类(这里不包括子类)

// true 

如: if( [sq isMemberOfClass: [Rectangle class]] == NO ) {} 

- (BOOL) respondsToSelector: selector
用于判断该对象是否能响应某个消息。这里,我们可以将@selector后面带的参数理解为C++中的函数指针。
注意:1)不要忘了@ 2)@selector后面用的是(),而不是[]。3)要在消息名称后面跟:,无论这个消息是否带参数。

// true

如: if( [sq respondsToSelector: @selector(setSize:)] == YES ) {} 

+ (BOOL) instancesRespondToSelector: selector
用于判断该类是否能响应某个消息。这是一个静态函数。

// true

如: if( [Square instancesRespondToSelector: @selector(setSize:)] == YES ) {}

相关文章:

  • 2021-09-29
  • 2022-12-23
  • 2022-01-20
  • 2021-12-27
  • 2021-09-10
  • 2021-05-20
猜你喜欢
  • 2021-07-22
  • 2022-12-23
  • 2021-05-20
  • 2022-12-23
  • 2021-07-12
  • 2021-11-12
相关资源
相似解决方案