Dostaję błąd w temacie po dzisiejszej aktualizacji do 8,3.Swift Musi zadzwonić do wyznaczonego inicjalizatora superklasy uiinputviewcontroller
Poniższy kod działał idealnie, ale nie jest już kompilowany. Czy ktokolwiek z was może mi pomóc?
protocol CustomAccessoryProtocol {
func controlButtonPressed(tag:Int)
}
class CustomAccessory : UIInputViewController {
var accessoryView : UIView!
var delegate : CustomAccessoryProtocol!
@IBOutlet weak var returnButton: UIButton!
@IBOutlet weak var backButton: UIButton!
@IBOutlet weak var forwardButton: UIButton!
init(delegate: CustomAccessoryProtocol){
super.init()
self.delegate = delegate
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
let customNib = UINib(nibName: "CustomAccessory", bundle: nil)
accessoryView = customNib.instantiateWithOwner(self, options: nil)[0] as! UIView
}
@IBAction func buttonPress(sender: AnyObject) {
delegate.controlButtonPressed(sender.tag!)
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(accessoryView)
}
}
Zastanawiam się, co oznaczony inicjator dla UIInputViewController? Nie "init (frame: CGRect)" Zakładam. ? – clearlight
Czy pierwszy init nie jest init? Czy musisz dodać do tego słowo kluczowe typu convenience? Nie mam tego do nauki. Miałem kilka przypadków, w których musiałem się z tym zmagać przez jakiś czas, aby to rozgryźć. Na podstawie inicjalizatorów * masz *, zakładam, że czytasz Swift [dokumentacja] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html) na ten temat jakiś punkt ... – clearlight
Czy coś się zmieniło w dokumentach 8.3 dla UIInputViewController lub UIViewController? – clearlight