在Xcode中,我如何知道哪个类实现了协议?

Ada*_*Lee 5 xcode objective-c

我想知道Xcode,我能快速知道哪些类实现了一些协议吗?

我不想使用搜索,但想快速识别这样的类.

小智 7

在协议实现的特定类中,只需在协议方法上按“命令 btn + 鼠标右键单击”..

它将显示具有此方法实现的所有类的列表。只需单击它,您就可以跳上该课程...


Seb*_*ian 6

您可以使用助理编辑器:

  • 打开您感兴趣的协议,将光标放在@protocol定义中
  • 打开Assistant Edior(command- option- return),然后从左上角的下拉菜单中选择Protocols:

在此输入图像描述

实现协议的类将在列表中.

编辑添加Rob的评论信息:

请注意,这只会查找在其公共标头或其实现中声明它们符合协议的类.如果在其他地方声明了对协议的一致性,则不会显示这些类.

假设您在某处定义了协议

@protocol MyProtocol <NSObject>
…
@end
Run Code Online (Sandbox Code Playgroud)

MyClass.h像这样的公共标题的类将显示:

@interface MyClass : NSObject <MyProtocol>
Run Code Online (Sandbox Code Playgroud)

此外,将显示在.m文件中扩展的类

@interface MyObject () <SomeProtocol>
…
@end

@implementation MyObject 
…
@end
Run Code Online (Sandbox Code Playgroud)

MyClass_Extension.h像这样的类扩展不会出现:

@interface MyObject (Extension) <SomeProtocol>
…
@end
Run Code Online (Sandbox Code Playgroud)