答案 0 :(得分:4)
Protocol
是一个类,它在Objective-C运行时中定义
并代表Objective-C协议。例如:
let p = objc_getProtocol("NSObject")!
print(p.dynamicType) // Output: "Protocol"
objc_getProtocol
被声明为
/**
* Returns a specified protocol.
*
* @param name The name of a protocol.
*
* @return The protocol named \e name, or \c NULL if no protocol named \e name could be found.
*
* @note This function acquires the runtime lock.
*/
@available(OSX 10.5, *)
public func objc_getProtocol(name: UnsafePointer<Int8>) -> Protocol!
和Protocol
被声明为
// typedef Protocol is here:
// All methods of class Protocol are unavailable.
// Use the functions in objc/runtime.h instead.
@available(OSX 10.0, *)
public class Protocol {
}
可以在中找到基础Objective-C定义
<objc/Protocol.h>
和
<objc/runtime.h>
答案 1 :(得分:1)
它是一种元类型,用于定义您在应用中创建的protocol
。就像 Type 一样,用于类和结构
元类型类型是指任何类型的类型,包括类类型,结构类型,枚举类型和协议类型。
类,结构或枚举类型的元类型是该类型的名称,后跟.Type。协议类型的元类型 - 不是在运行时符合协议的具体类型 - 是该协议的名称,后跟.Protocol。例如,SomeClass类类型的元类型是SomeClass.Type,协议SomeProtocol的元类型是SomeProtocol.Protocol。