В Swift 2 (часть Xcode 7), SIMD векторы доступны для Swift, поэтому API, который использует их (такие как linearGravityFieldWithVector
, новые GameplayKit и Model I/O рамки и т. д.) теперь импортируются в Swift, тоже ... обходных решений больше не требуется.
let field = SKFieldNode.linearGravityFieldWithVector(float3(1,0,0))
Ранее ... Метод SKFieldNode
класс linearGravityFieldWithVector
делает это, но он не доступен в Swift. В векторном параметре ObjC используется тип vector_float3
из библиотеки SIMD, в которой используется специальная маска компилятора C для создания векторов, которые используют аппаратное ускорение SSE (на OS X/x86) или NEON (на iOS/ARM) и прекрасно собираются для отправки на графические процессоры. Такой тип вуду в настоящее время не существует в Swift, поэтому любые API-интерфейсы ObjC, которые полагаются на него, не импортируются в Swift.
Теперь вы можете получить доступ к этим API-интерфейсам из ObjC - в проекте Swift, вы можете сделать себе небольшую функцию обертки ObjC и выставить ее в Swift в своем заголовочном шлейфе.
Не похоже, что это устарело, просто ... отсутствует в Swift SpriteKit API. Вы можете [сообщить об ошибке] (http://bugreport.apple.com) об этом. –