我有一个对象,我想列出它响应的所有 Select 器.感觉这应该是完全可能的,但我很难找到API.

推荐答案

这是一个基于运行时C函数的解决方案:

class_copyMethodList返回给定可从对象获得的类对象的类方法列表.

#import <objc/runtime.h>

[..]

SomeClass * t = [[SomeClass alloc] init];

int i=0;
unsigned int mc = 0;
Method * mlist = class_copyMethodList(object_getClass(t), &mc);
NSLog(@"%d methods", mc);
for(i=0;i<mc;i++)
    NSLog(@"Method no #%d: %s", i, sel_getName(method_getName(mlist[i])));

/* note mlist needs to be freed */

Objective-c相关问答推荐

如何以编程方式获取iphone的IP地址

XCTAssertEqual 不适用于双精度值

获取 Objective-C 类或实例的所有方法

在 UILabel.attributedText *not* 蓝色和 *not* 下划线

如何在 iOS 中拨打电话?

Interface Builder 中的 IBOutletCollection 集排序

MKMapView MKPointAnnotation 点击​​事件

避免NSArray 在被枚举时发生Mutations

在 NSMutableArray 的开头添加一个对象?

进入编辑模式时动画自定义绘制的 UITableViewCell

我应该使用 NSUserDefaults 还是 plist 来存储数据?

如何在 ios 8 的 alertview 中添加文本输入?

判断是否已实现可选协议方法

iOS 7 中的 UITextView 链接检测

为整个 iPhone / iPad 应用程序设置背景图像

AppDelegate 的当前视图控制器?

即使在静音模式下也能在 iPhone 上播放声音

重复符号问题

如何调整 UIToolBar 左右内边距

iOS 上的电话号码格式