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 に答える