2016-07-07 9 views
-2

1.I уверены, преобразование обратной аудио функции Objective C в стриж, так что я могу интегрировать быстрый код в мою программу, но эти несколько строк кодов не понятныеЯ не смог преобразовать этот ObjectiveC кода в быструю

2.Это следующая цель-с-код:

CMSampleBufferRef sample; 

    NSMutableArray *samples = [[NSMutableArray alloc] init]; 

    while (sample != NULL) { 
    sample = [readerOutput copyNextSampleBuffer]; 

    if (sample == NULL) 
     continue; 

    [samples addObject:(__bridge id)(sample)]; 

    CFRelease(sample); 
    } 

ответ

2

код, который вы показали, могут быть преобразованы в Swift как:

var samples: [CMSampleBuffer] = [] 
while let sample = readerOutput.copyNextSampleBuffer() { 
    samples.append(sample) 
} 
+0

Огромное вам спасибо, я просто читал, что CFRelease не необходимость ed больше не понимают почему? –

+0

Возможно, вы слышали о ARC. Swift ARC может заботиться о объектах CF, а также NSObjects. Вам не нужно беспокоиться о CFRelease или о том, какой атрибут моста нужен или что-то в этом роде. В большинстве случаев просто удалить все CFReleases. – OOPer

+0

@ Per oh большое спасибо вам большое –