2014-09-19 2 views

ответ

0

Если вам нужно запустить некоторый код при завершении функции, есть параметр «completeHandler».

Согласно documentation: «Блок, подлежащий вызову после захвата изображения».

Редактировать: Вы можете прочитать о программировании блоков here. Поскольку блок-обозначения могут быть немного запутанными, есть простой трюк, который может вам помочь. Когда вы создаете подпись функции в XCode, используя автозаполнение, у вас есть синие заполнители для переменных, которые вам нужно передать. Теперь, когда вы нажимаете «ввести» на блок-заполнитель, XCode генерирует пустой блок с соответствующим синтаксисом для вас.

+0

я не уверен, что вы просите. Вы не понимаете блок-обозначения? Вы не знаете, как сохранить изображение? Пожалуйста, укажите свой вопрос. –

+0

Я не знаю «блок-обозначения». Я даже не знаю, о чем вы говорите. – suMi

0

я вещь, это то, что вы хотите

[self.avSnapper captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error){ 

    CFDictionaryRef exifAttachments = CMGetAttachment(imageSampleBuffer, kCGImagePropertyExifDictionary, NULL); 
    if (exifAttachments){ 

     // Do something with the attachments if you want to. 
     NSLog(@"attachements: %@", exifAttachments); 
    } 
    else 
     NSLog(@"no attachments"); 

    NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer]; 
    UIImage *image = [[UIImage alloc] initWithData:imageData]; 

    self.vImage.image = image; 
}]; 
+0

Думаю, мне нужно объяснение. что это? "^ (CMSampleBufferRef imageSampleBuffer, ошибка NSError *)?? Мне, очевидно, нужна другая функция, поэтому мне нужно понять, что она делает и как просто называть пустоту. – suMi

+0

Что вы подразумеваете под «call a void»? Что касается обозначения, которое вы не понимаете, я добавил в объяснение в своем ответе. –

+0

@suMi здесь^является блок-записью, вещи, написанные с помощью знака ^, будут выполняться с указанными параметрами, как только «captureStillImageAsynchronouslyFromConnection:» завершите. Для получения дополнительной информации вам нужно познакомиться с «Блоками в iOS» в ios.you также можете посмотреть http://www.raywenderlich.com/9438/how-to-use-blocks-in-ios-5-tutorial-part -2 – mhrrt

Смежные вопросы