4

私のアプリケーションでは、トーチライトのオプションがあります。ただし、トーチライトを備えているのはiPhone4とiPhone4Sだけです。他のデバイスにはトーチライトがありません。現在のデバイスモデルを見つけるにはどうすればよいですか?私を助けてください。前もって感謝します。

4

6 に答える 6

4

機能が存在するかどうかの指標としてデバイス モデルを使用しないでください。代わりに、その機能が存在するかどうかを正確に伝える API を使用してください。

あなたの場合、AVCaptureDevice-hasTorchプロパティを使用したい:

NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
NSMutableArray *torchDevices = [[NSMutableArray alloc] init];
BOOL hasTorch = NO;

for (AVCaptureDevice *device in devices) {
    if ([device hasTorch]) {
        [torchDevices addObject:device];
    }
}

hasTorch = ([torchDevices count] > 0);

詳細については、AV Foundation プログラミング ガイドおよびAVCaptureDevice クラス リファレンスを参照してください。

于 2011-12-07T16:06:46.350 に答える
3

上記のコードよりも少ないコードで、より少ないメモリを使用できます。

NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
BOOL hasTorch = NO;

for (AVCaptureDevice *device in devices) {
    if ([device hasTorch]) {
        hasTorch = YES;
        break;
    }
}

hasTorch に正しい値が含まれるようになりました

于 2014-06-12T12:23:50.727 に答える