Returns a Boolean value that indicates whether one protocol conforms to another protocol.


func protocol_conformsToProtocol(_ proto: Protocol?, _ other: Protocol?) -> Bool



A protocol.


A protocol.

Return Value

true if proto conforms to other, otherwise false.


One protocol can incorporate other protocols using the same syntax that classes use to adopt a protocol:

@protocol ProtocolName < protocol list >

All the protocols listed between angle brackets are considered part of the ProtocolName protocol.

See Also

Working with Protocols

func objc_getProtocol(UnsafePointer<Int8>)

Returns a specified protocol.

func objc_copyProtocolList(UnsafeMutablePointer<UInt32>?)

Returns an array of all the protocols known to the runtime.

func objc_allocateProtocol(UnsafePointer<Int8>)

Creates a new protocol instance.

func objc_registerProtocol(Protocol)

Registers a newly created protocol with the Objective-C runtime.

func protocol_addProtocol(Protocol, Protocol)

Adds a registered protocol to another protocol that is under construction.

func protocol_getName(Protocol)

Returns a the name of a protocol.

func protocol_isEqual(Protocol?, Protocol?)

Returns a Boolean value that indicates whether two protocols are equal.

func protocol_copyMethodDescriptionList(Protocol, Bool, Bool, UnsafeMutablePointer<UInt32>?)

Returns an array of method descriptions of methods meeting a given specification for a given protocol.

func protocol_getMethodDescription(Protocol, Selector, Bool, Bool)

Returns a method description structure for a specified method of a given protocol.

func protocol_copyPropertyList(Protocol, UnsafeMutablePointer<UInt32>?)

Returns an array of the properties declared by a protocol.

func protocol_getProperty(Protocol, UnsafePointer<Int8>, Bool, Bool)

Returns the specified property of a given protocol.

func protocol_copyProtocolList(Protocol, UnsafeMutablePointer<UInt32>?)

Returns an array of the protocols adopted by a protocol.