Я укусил пулю и начал конвертировать мое приложение в Swift 3. Как всегда, конвертер оставляет желать лучшего. В этом случае я не уверен, как правильно кодировать новую версию. Вот оригинал:SCNGeometryElement setup в Swift 3
let indexes : [CInt] = [0,1,2,3]
let dat = NSData(bytes: indexes, length: sizeofValue(indexes))
let ele = SCNGeometryElement(data:dat, primitiveType: .Triangles, primitiveCount: 2, bytesPerIndex: sizeof(Int))
После запуска преобразования и записи нового SizeOf (спасибо), я закончил с этим:
let indexes : [CInt] = [0,1,2,3]
let dat = Data(bytes: UnsafePointer<UInt8>(indexes), count: sizeof(indexes))
let ele = SCNGeometryElement(data:dat, primitiveType: .triangles, primitiveCount: 2, bytesPerIndex: MemoryLayout<Int>.size)
Однако, это дает мне (на Data(bytes:length:)
вызова):
«init» недоступен: используйте «withMemoryRebound (to: capacity: _)», чтобы временно просмотреть память как другой совместимый с макета тип.
Я просмотрел несколько тем здесь и прочитал заметки о выпуске, которые охватывают это, и я все еще сбиваю с толку то, что я должен делать здесь.
Это отличный ответ, так как всегда, рикер. Я очень благодарен за упрощение. Как ни странно, оригинальная трехстрочная версия исходит из собственных примеров Apple. –
Старый пример, вероятно, никогда не обновлялся. Я обнаружил, что они часто делают быстрые исправления, когда вы [ошибка файла с документацией разработчика] (http://bugreport.apple.com). – rickster