2014-06-06 19 views
31

Czy ktoś może wyjaśnić, jak uzyskać dostęp do przedstawionej poniżej wersji CMutablePointer<CGPoint>? Nie mogę znaleźć tej składni. Kiedyś było -> w Objective-C, ale tutaj żadne z moich rozwiązań nie działa. Rozwiązanie przedstawione w this link działa w przeciwny sposób, którego muszę się dowiedzieć.CMutablePointer - jak uzyskać do niego dostęp?

func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: CMutablePointer<CGPoint>) { 
    let newPage = targetContentOffset->x + 1; 
} 

Odpowiedz

30

Ponieważ Swift beta 5, scrollViewWillEndDragging(_:withVelocity:targetContentOffset:) miało wystąpienie UnsafeMutablePointer jako ostatni argument. Gdy ta metoda jest wywoływana w widoku przewijania, implementacja może uzyskać dostęp do bazowego punktu Core Graphics za pośrednictwem właściwości wskaźnika o wartości pointee.

Zauważ, że pisownia pointee kiedyś memory przed Swift 3.

+0

Dobry korekty, dziękuję –

55

Jak @Eric wspomniano w jego aktualizacji, delegat scrollViewWillEndDragging teraz bierze UnsafePointer. Aby zaktualizować wskaźnik Niebezpieczne, wystarczy uzyskać dostęp do właściwości pamięci.

func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafePointer<CGPoint>) { 
    targetContentOffset.memory.y = x + 1 
} 

* Przetestowane i pracy z Swift Beta 4.

aktualizowana BETA 5
Swift Beta 5 przewijania widoku delegata wykorzystuje UnsafeMutablePointer zamiast UnSafePointer

func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { 
    targetContentOffset.memory.y = x+ 1 
} 
2

Ten pracował dla mnie na Xcode 6.3

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { 
    var scrollOffset = targetContentOffset.memory.y 
    println(scrollOffset) 
} 
19

SWIFT 3

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { 
    var scrollOffset = targetContentOffset.pointee 
} 
+0

Apple powinno w końcu zrobić to 'inout' jak oni to powiedział w sesji 2013 WWDC. – DevAndArtist

Powiązane problemy