Я делаю что-то неправильно или Swift должен быть написан с постоянными преобразованиями? Например, я хочу определить NSRect
, чтобы нарисовать круг, и я уже определил NSPoint
, который будет его центром, также у меня есть радиус Float
, который будет определять ширину и высоту, но его следует умножить на шкалу Int
раньше, поэтому я делаю это так:Преобразование типов для параметров NSRect
let objectRect = NSRect(x: center.x - radius*scale ...
я получаю предупреждение, что я не могу умножить Int
на Float
. Хорошо, теперь это выглядит так:
let objectRect = NSRect(x: center.x - radius*Float(scale) ...
Теперь эта часть хорошо, но еще одно предупреждение говорит, что Float
не может быть вычтена из CGFloat
. Другое преобразование:
let objectRect = NSRect(x: Float(center.x) - radius*Float(scale) ...
Выглядит ужасно уже, но к началу торту последних предупреждений состояния, NSRect не принимает Float, так что мне нужно, чтобы преобразовать его в два раз.
Хотя это затмит ошибки на устройстве OPs (это, по-видимому, 64 бит), это вызовет такую же проблему на 32-битном устройстве. Короче говоря, используйте CGFloat. –
Я, я использую 'CGFLoat' почти везде. Изменит его. –
Но почему они не делают это неявно? Некоторые концептуальные причины? – RomaValcer