2016-07-07 7 views
-2

1.Ich konvertieren ist eine Reverse-Audio-Funktion von Objective-C in rascher Umwandlung, so dass ich den SWIFT-Code in mein Programm integrieren kann, aber diese wenige Zeilen Code sind nicht verständlichIch bin nicht auf diesen Objective-Code in schnelle

2.Dies ist die folgende Objective-c-Code:

CMSampleBufferRef sample; 

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

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

    if (sample == NULL) 
     continue; 

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

    CFRelease(sample); 
    } 

Antwort

2

der Code, den Sie können als zu Swift umgewandelt gezeigt haben:

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

Danke soviel, war ich lese gerade, dass CFRelease nicht brauchen ed mehr verstehe nicht warum? –

+0

Vielleicht haben Sie schon von ARC gehört. Swift ARC kann sich sowohl um CF-Objekte als auch NSObjects kümmern. Sie müssen sich keine Gedanken über CFRelease machen oder welches Bridging-Attribut benötigt wird oder ähnliches. In den meisten Fällen würde das Entfernen aller CFReleases funktionieren. – OOPer

+0

@Per oh groß vielen Dank –

Verwandte Themen