Swift 3 / Xcode 9. MTLBuffer 'didModifyRange' недоступен.

Я пытаюсь сообщить MTLBuffer, что диапазон изменился, но компилятор не позволяет мне это сделать:

vertexBuffer?.didModifyRange(NSMakeRange(0,MemoryLayout<MetalVertex>.stride*nbVerts))

он просто говорит: «didModifyRange» недоступен, почему это так?

Благодарность


person user1822451    schedule 09.11.2017    source источник


Ответы (1)


В Swift didModifyRange принимает Range<Int>, а не NSRange. Поэтому вместо использования NSMakeRange вы можете создать его с помощью оператора ..<.

vertexBuffer?.didModifyRange(0 ..< MemoryLayout<MetalVertex>.stride * nbVerts)
person rickster    schedule 09.11.2017
comment
спасибо за ответ Рик, я пробовал ваше предложение, но получаю эту ошибку: не удается преобразовать значение типа «CountableRange ‹Int›» в ожидаемый тип аргумента «NSRange» (также известный как «_NSRange»). - person user1822451; 20.11.2017