代码之家  ›  专栏  ›  技术社区  ›  Sean Clark Hess

如何获取协议对象的唯一标识符

  •  4
  • Sean Clark Hess  · 技术社区  · 14 年前

    我正试图使字典存储一个对应于协议的委托的映射。我需要一些表示协议的一致密钥。

    例如,下面给出了一个协议对象

    Protocol * one = @protocol(SomeProtocolDefinedEarlier);
    

    它对 [one hash] 但是,每次为同一个协议获取协议对象时,哈希值并不相同。有一些吗? name 信息或其他我可以用来识别的东西?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Dave DeLong    14 年前

    那么,协议必须有唯一的名称(否则它们会相互冲突),那么如何:

    Protocol * aProtocol = ...
    NSString * protocolIdentifier = NSStringFromProtocol(aProtocol);