Was bedeutet inout CGPoint * als Parameter?

7

In den UIScrollView-Delegatmethoden gibt es:

scrollViewWillEndDragging:withVelocity:targetContentOffset:

und der letzte Parameter ist:

(inout CGPoint *)targetContentOffset

Ich bin neugierig, was das Inout bedeutet und warum CGPoint ein Zeiger ist. Ich habe versucht, targetContentOffset auf die Konsole zu drucken, aber ich bin mir nicht sicher, wie es auch geht. Jede Hilfe wird geschätzt!

    
c0sic 17.09.2013, 17:41
quelle

1 Antwort

22

Dies bedeutet, dass der Parameter verwendet wird, um Daten in zu senden, aber auch Daten out zu erhalten.

Sehen wir uns eine Beispielimplementierung an:

%Vor%

Dieses Muster wird oft mit C-Strukturen verwendet, z. B. CGPoint , weil sie nach Wert übergeben (kopiert) werden.

Beachten Sie auch, dass inout dort nicht unbedingt erforderlich ist, aber es hilft dem Compiler, die Bedeutung Ihres Codes zu verstehen und bessere Ergebnisse bei der Optimierung zu erzielen.

Es gibt auch separate in und out Annonierungen, aber soweit ich weiß gibt es keine Compilerwarnungen, wenn Sie sie missbrauchen und es scheint, dass Apple sie nicht mehr verwendet.

    
Sulthan 17.09.2013, 17:44
quelle