1

我希望能够执行一段在字符串中定义的代码。我知道 performSelector: 但将执行选择器的对象会有所不同。

示例字符串

[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]
[UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]

所以我想做的是类似的事情

SEL selector = NSSelectorFromString(@"[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]");
if (selector) {
    // Show flash buttons
}
4

1 回答 1

2

不能触发调用嵌套方法调用的选择器

选择器只是显示参数数量的方法名称method:abc:yxa:

如下声明:

SEL selector = NSSelectorFromString(@"[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]");

正在打电话

[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]

然后

[objectReturnedByAbove hasFlash]
于 2013-03-01T10:51:42.163 回答