2015-01-10 2 views
2

документация яблоко дает декларацию SCNVector3:Каков тип компонентов SCNVector3? CGFloat или Float?

ЬурейеЕ структуры SCNVector3 {CGFloat х, у, г; } SCNVector3;

Или при попытке записать функцию перегрузки:

func * (left: SCNVector3, right: CGFloat) -> SCNVector3 { 
    return SCNVector3Make(left.x * right, left.y * right, left.z * right) 
} 

Я получаю «не может ссылаться на„“со списком аргументов типа» ошибка. Не left.x, left.y и left.z должен быть CGfloat?

Как и когда будет принято решение, будет ли CGFloat двойным или поплавком?

+0

Эта документация для Objective-C –

+0

@ DavidRönnqvist: Но https://developer.apple.com/library/ios/documentation/SceneKit/Reference/SceneKit_DataTypes/index. html # // apple_ref/c/tdef/SCNVector3 также неверен для Objective-C (должен быть 'float' вместо' CGFloat'). Если в качестве языка выбран «Swift», тип типа вообще не отображается. –

+1

Да, я подал радар :) –

ответ

2

В заголовках SDK IOS 8.1, то SCNVectorX типов основаны на Float, как можно видеть команды кнопки мыши на SCNVector3:

struct SCNVector3 { 
    var x: Float 
    var y: Float 
    var z: Float 
} 

func SCNVector3Make(x: Float, y: Float, z: Float) -> SCNVector3 

Это отличается от OS X 10.10 SDK где CGFloat является используемый. Поэтому документация кажется неправильной. Следующие компилирует в проекте IOS:

func * (left: SCNVector3, right: Float) -> SCNVector3 { 
    return SCNVector3Make(left.x * right, left.y * right, left.z * right) 
} 
Смежные вопросы