我希望能够执行在字符串中定义的一段代码。我知道performSelector:但是执行选择器的对象将会有所不同。
示例字符串
[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]
[UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]
所以我想做的是
SEL selector = NSSelectorFromString(@"[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]");
if (selector) {
// Show flash buttons
}
答案 0 :(得分:2)
您无法触发调用嵌套方法调用的选择器。
选择器只是显示参数数量为method:abc:yxa:
如下所述:
SEL selector = NSSelectorFromString(@"[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] hasFlash]");
正在调用
[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]
然后
[objectReturnedByAbove hasFlash]