我这里有一个奇怪的错误。
我正在继承 UIImageView 以将一些自定义属性传递给我的视图。如果我不向我的子类添加 init 方法,一切都很好。
但是,如果我确实添加了 init(并且我必须这样做),那么当我创建框架视图时,编译器会抱怨 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")
}
}
和 Le 创建 Frame 时的错误。
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'”。