Класс MTIVector
не имеет инициализатора, принимающего аргумент float3
или float2
.Существует
- (instancetype)initWithFloatValues:(const float *)values count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
инициализатор, который импортируется в Swift как
public init(floatValues values: UnsafePointer<Float>, count: UInt)
и может вызываться из Swift, например, как
let vec = MTIVector(floatValues: [0.0, 1.0, 2.0], count: 3)
, который работает, потому что передачаМассив [Float]
для функции C, принимающей аргумент UnsafePointer<Float>
, автоматически передает указатель на хранилище элементов массива.Вы также можете определить
extension MTIVector {
convenience init(floatArray: [Float]) {
self.init(floatValues: floatArray, count: UInt(floatArray.count))
}
}
и использовать его как
let vec = MTIVector(floatArray: [0.0, 1.0, 2.0])