【发布时间】:2014-09-20 13:18:26
【问题描述】:
我这里有一个奇怪的错误。
我正在继承 UIImageView 以将一些自定义属性传递给我的视图。 如果我不向我的子类添加 init 方法,一切都很好。
但是,如果我确实添加了 init(并且我必须这样做),那么当我创建框架视图时,编译器会抱怨 Int 不能转换为 CGFloat。
带有 Le init 的 Le 子类:
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")
}
}
创建 Frame 时出现 Le 错误。
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'”。
【问题讨论】:
标签: swift uiimageview int subclass cgfloat