UITextView的指定初始化程序

时间:2014-06-06 05:42:59

标签: xcode uitextview swift initializer

当我在Xcode 6 Beta中创建UITextView的新子类时,会自动提供以下代码。

import UIKit

class TerminalView: UITextView {

    init(frame: CGRect) {
        super.init(frame: frame)
        // Initialization code
    }
}

前面的代码(完全由Xcode提供,没有删除)会出现以下错误。

Must call a designated initializer of the superclass 'UITextView'

据我所知,UIView的所有子类的指定是-initWithFrame:(或者在Swift,init(frame:)。如果是这种情况,为什么代码由Xcode提供导致错误?我没有在类中添加新的实例变量,所以还没有其他任何东西必须初始化。

1 个答案:

答案 0 :(得分:10)

似乎现在唯一有效的初始化程序是:

super.init(frame: CGRect, textContainer: NSTextContainer?)

可以用

调用
super.init(frame: CGRect.zero, textContainer: nil)

这很可能是初始测试版中的一个错误,将在即将发布的测试版中修复。