У меня тут странный баг.
Я создаю подкласс UIImageView, чтобы передать некоторые пользовательские свойства своим представлениям. Если я не добавлю метод инициализации в свой подкласс, все в порядке.
Но если я добавлю инициализацию (а я должен это сделать), то при создании представления кадра компилятор жалуется, что Int не может быть преобразован в CGFloat.
Le подкласс с Le init :
class CustomUIImageView : UIImageView {
let someParameter : Bool
init(someParameter: Bool) {
self.someParameter = someParameter
println("\(someParameter) is being initialized")
}
//Since the release of the GM version of XCode 6, it's asking me to pass this init below
//if I'm initializing a value. Frankly, I've no idea why, what's for nor what should I do about it.
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
deinit {
println("\(someParameter) is being deinitialized")
}
}
И Ле ошибка при создании Фрейма.
var myView: CustomUIImageView!
myView = CustomUIImageView(frame: (CGRectMake(0, 0, 100, 100)))
//compiler says "Int is not convertible to CGFloat".
Это какой-то баг, или я что-то не так сделал (что весьма правдоподобно)?
Редактировать: я читал, что мне нужно преобразовать непосредственно в CGFloat, выполнив следующие действия: myView = CustomUIImageView(frame: (CGRectMake(CGFloat(0), 0, 100, 100)))
Но затем компилятор снова жалуется, говоря, что «Type () не соответствует протоколу IntergerLiteralConvertible».