是否遵从某个协议 ios

原创 2016年05月31日 10:41:18

respondsToSelector: 和 conformsToProtocol:的区别

conformsToProtocol 是检测一个类是不是遵从某个协议,跟该类是不是实现了该协议的方法没什么关系(当然协议里声明称 required 的方法必须得实现)。

respondsToSelector 是检测一个类或者其父类能不能响应某个消息。以你的例子里,NSObject 是可以响应 mutableCopy 消息的,NSNumber 是 NSObject 的子类,所以 respondsToSelector 返回 true 是没有问题的。respondsToSelector 并不是只检查了方法名,不是有方法声明但是没有实现也可以。它是要求必须要有实现的。 NSObject 类里是有 mutableCopy 方法的实现的,如文档里所说:
Returns the object returned by mutableCopyWithZone:.
This is a convenience method for classes that adopt the NSMutableCopying protocol. An exception is raised if there is no implementation for mutableCopyWithZone:.

所以我们可以猜测一下, NSObject 的 mutableCopy 方法就是去调用 mutableCopyWithZone 并返回结果,如果该类没有实现 mutableCopyWithZone 方法,则抛出异常。


版权声明:本文为博主原创文章,未经博主允许不得转载。

是否遵从某个协议 ios

respondsToSelector: 和 conformsToProtocol:的区别 conformsToProtocol 是检测一个类是不是遵从某个协议,跟该类是不是实现了该协议的方法...
  • pengyuan_D
  • pengyuan_D
  • 2016年05月31日 10:41
  • 266

ios开发之判断对象的等同性isEqual

在开发中我们经常会遇到这样的情况:判断两个元素或者对象是否相等。经常用到的有“==”或者isEqual或者isEqualToString等等。下边我们就来介绍一下这几种方法的区别。 一、 “ ==...
  • CrazyZhang1990
  • CrazyZhang1990
  • 2015年03月10日 17:58
  • 13931

IOS开发之协议和代理

【iOS开发技术分享】协议与代理 【iOS开发技术分享】协议与代理 一、理解协议与代理 协议: 协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现...
  • xuqiang918
  • xuqiang918
  • 2013年09月29日 17:32
  • 23364

swift3 协议

协议定义了一个方法的蓝图,属性和其他适合特定任务或功能的要求。协议实际上并不提供一个这些要求的实现,它只是描述了一个实现会是什么样子。协议可以通过一个类,结构或枚举提供这些要求的具体实现。满足要求的任...
  • shenhaifeiniao
  • shenhaifeiniao
  • 2017年04月21日 10:48
  • 749

iOS-对于类是否符合条件的判断

conformsToProtocol:@protocol():
  • PoLuoGuiZu
  • PoLuoGuiZu
  • 2014年04月14日 14:37
  • 764

如何判断一个类是否支持某属性和方法以及如何判断IOS的版本

instancesrespondToSelector 是什么意思。与 respondsToSelector 有什么区别? instancesRespondToSelector是指类的实例们是否...
  • jiajiayouba
  • jiajiayouba
  • 2014年07月30日 08:12
  • 7351

判断某个类和某个对象能否响应某个方法

instancesrespondToSelector 是什么意思。与 respondsToSelector 有什么区别? instancesRespondToSelector是指类的...
  • yuyezhulan
  • yuyezhulan
  • 2014年11月15日 15:02
  • 1161

iOS判断某个类是否可以调用某个类方法

实际编码过程中经常会判断某个实例shi
  • u010571113
  • u010571113
  • 2014年11月19日 14:29
  • 3459

IOS开发系列--Objective-C之协议、代码块、分类

概述 ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性。当然这些内容虽然和其他高级语言命名不一样,但...
  • jianxin160
  • jianxin160
  • 2015年08月18日 15:55
  • 15247

【IOS 开发学习总结-OC-20】★★★objective-c面向对象——协议(protocol)

协议(protocol)的作用类似于其他语言的接口,用于定义多个类应该遵守的规范。 协议定义了某些类所需遵守的规范,它不关心这些类的内部状态数据和实现细节,只规定这些类必须提供某些方法。提供你呢这些...
  • senwin2009
  • senwin2009
  • 2015年09月26日 10:53
  • 615
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:是否遵从某个协议 ios
举报原因:
原因补充:

(最多只允许输入30个字)