CMutablePointer - как получить к нему доступ?
Может ли кто-нибудь объяснить, как получить доступ к CMutablePointer<CGPoint>
, представленному ниже? Я не могу найти синтаксис для него. Раньше он был ->
в Objective-C
, но здесь ни одно из моих решений не работает. Решение, представленное в этой ссылке, работает в обратном порядке, мне нужно выяснить.
func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: CMutablePointer<CGPoint>) {
let newPage = targetContentOffset->x + 1;
}
Ответы
Ответ 1
Так как Swift beta 5, scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)
взял в качестве последнего аргумента экземпляр UnsafeMutablePointer
. Когда этот метод вызывается по вашему прокрутку, ваша реализация может получить доступ к базовой точке графического ядра с помощью свойства указателя pointee
.
Обратите внимание, что написание pointee
раньше memory
перед Swift 3.
Ответ 2
Как упоминалось в его обновлении @Eric, делегат scrollViewWillEndDragging теперь принимает UnsafePointer. Чтобы обновить указатель Unsafe, вам просто нужно получить доступ к свойству памяти.
func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafePointer<CGPoint>) {
targetContentOffset.memory.y = x + 1
}
* Протестировано и работает с Swift Beta 4.
ОБНОВЛЕНО ДЛЯ БЕТА 5
Swift Beta 5 приглашает прокрутить список делегатов, используя UnsafeMutablePointer вместо UnSafePointer
func scrollViewWillEndDragging(scrollView: UIScrollView!, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
targetContentOffset.memory.y = x+ 1
}
Ответ 3
SWIFT 3
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
var scrollOffset = targetContentOffset.pointee
}
Ответ 4
Это работало для меня на Xcode 6.3
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
var scrollOffset = targetContentOffset.memory.y
println(scrollOffset)
}