2014-06-06 8 views
31

Qualcuno può spiegare come accedere a CMutablePointer<CGPoint> presentato di seguito? Non riesco a trovare la sintassi per questo. Era -> in Objective-C, ma qui nessuna delle mie soluzioni funziona. La soluzione presentata in this link funziona nel modo opposto che ho bisogno di scoprire.CMutablePointer - come accedervi?

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

risposta

30

Dal Swift beta 5, scrollViewWillEndDragging(_:withVelocity:targetContentOffset:) ha preso un'istanza UnsafeMutablePointer come il suo ultimo argomento. Quando questo metodo viene chiamato dalla visualizzazione di scorrimento, l'implementazione può accedere al punto Core Graphics sottostante tramite la proprietà pointee del puntatore.

noti che l'ortografia di pointee usato essere memory prima Swift 3.

+0

buona correzione, grazie –

55

Come @Eric citato nel suo aggiornamento, il delegato scrollViewWillEndDragging ora prende un UnsafePointer. Per aggiornare il puntatore non sicuro, è sufficiente accedere alla proprietà di memoria.

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

* Testato e funzionante con Beta Swift 4.

AGGIORNATO PER BETA 5
Swift Beta 5 di scorrimento vista delegato utilizza un UnsafeMutablePointer invece di UnSafePointer

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

Questo ha funzionato per me su 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 dovrebbe finalmente fare questo 'inout' come hanno detto che nella sessione 2013 WWDC. – DevAndArtist