Я обновляю код для быстрой 3. Я создал пользовательский путь для моего объекта spritekit, который работает в быстром 2. Однако, теперь я получаю ошибку компиляции:CGPath не работает в Swift 3
Nil is not compatible with expected argument type 'Unsafe Pointer CGAffineTransform'
let offsetX = player.size.width * player.anchorPoint.x
let offsetY = player.size.height * player.anchorPoint.y
let path = CGMutablePath()
CGPathMoveToPoint(path, nil, 10 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 10 - offsetX, 0 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 0 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY)
CGPathAddLineToPoint(path, nil, 28 - offsetX, 40 - offsetY)
CGPathAddLineToPoint(path, nil, 18 - offsetX, 46 - offsetY)
CGPathAddLineToPoint(path, nil, 6 - offsetX, 36 - offsetY)
CGPathAddLineToPoint(path, nil, 6 - offsetX, 18 - offsetY)
path.closeSubpath()
Ошибка при передаче nil во втором аргументе при добавлении к пути. Я попытался передать опасный указатель следующим образом:
var tr = CGAffineTransform.identity
CGPathMoveToPoint(path, &tr, 10 - offsetX, 16 - offsetY)
....
, но затем получил еще одну странную ошибку.
CGPathMoveToPoint is unavailable. Use move(to: transform:)
Однако не было функции перемещения с именем аргумента. Однако произошел переход (toParent:).
спасибо! Не думал проверять переменную для функции-члена. – patrickd