CMutablePointer - 如何访问它?

时间:2014-06-06 12:13:44

标签: swift

有人可以解释如何访问下面提到的CMutablePointer<CGPoint>吗?我找不到它的语法。它曾经是->中的Objective-C,但这里我的解决方案都不起作用。 this link中提出的解决方案与我需要找到的方式相反。

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

3 个答案:

答案 0 :(得分:55)

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

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

*测试并使用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
}

答案 1 :(得分:40)

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

请注意,pointee的拼写曾是Swift 3之前的memory

答案 2 :(得分:23)

SWIFT 3

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