objective-c - 我怎样才能知道一个对象是否实现了一个特定的方法?

标签 objective-c cocoa methods

我正在遍历一个包含许多不同类型对象的 NSArray。有很多方法可以确定对象是什么类。然而,我一直没能找到一个好方法来查明一个对象是否可以实现一个特定的功能。我可以将它放在 try-catch 中,但即使我正在捕获错误,它仍会在控制台中输出错误消息。有更好的方法吗?

简单的例子:

@try {
    if ([element lowercaseString]) {
        //do something
    }
}
@catch (id theException) {
    // do something else
}

最佳答案

按照建议,您可以使用 respondsToSelector:NSObject 上声明的消息。提供的代码就像

if ([element respondsToSelector:@selector(lowercaseString)]) {
    // ... do work
}

关于objective-c - 我怎样才能知道一个对象是否实现了一个特定的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1103895/

相关文章:

cocoa - sleep 展示 cocoa /碳

objective-c - 同时修改窗框和 View 框

java - 主要方法是空的?

php - 尝试移植 C++ 代码以将文件上传到服务器到 Objective-C,但它不起作用

ios - 当你调用 UItableview reload 两次时会发生什么

iphone - 是否有用于随机性的 Mersenne Twister 算法的稳定 Objective-C 实现?

java - 调用返回 int[] 的方法

objective-c - 回调 iOS 不工作

objective-c - 使用 NSNumberFormatter 在 NSTextField 中自定义错误消息

javascript - 为什么这一直说它没有定义