CMutablePointer - 如何访问它?

Viv*_*ive 36 swift

任何人都可以解释如何访问CMutablePointer<CGPoint>下面提到的?我找不到它的语法.它曾经是->Objective-C,但在这里没有我的解决方案的工作.此链接中提供的解决方案与我需要找到的方式相反.

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

Jar*_*ger 55

正如@Eric在他的更新中提到的,scrollViewWillEndDragging委托现在采用UnsafePointer.要更新Unsafe指针,只需访问memory属性即可.

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

*经过测试并使用Swift Beta 4.

更新为BETA 5
Swift Beta 5滚动视图委托使用UnsafeMutablePointer而不是UnSafePointer

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


Eri*_*oss 41

自Swift beta 5以来,scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)已经将一个UnsafeMutablePointer实例作为其最后一个参数.当您的滚动视图调用此方法时,您的实现可以通过指针的pointee属性访问基础Core Graphics点.

请注意,之前的拼写pointeememory在Swift 3之前.


小智 23

SWIFT 3

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
    var scrollOffset = targetContentOffset.pointee
}
Run Code Online (Sandbox Code Playgroud)