UIViewのinitのForced Unwrappingと
swiftで書かれた以下のclassファイルのソースがあります。
// レイヤーをAVPlayerLayerにする為のラッパークラス.
class AVPlayerView : UIView{
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)! // ・・・(1)
}
override class func layerClass() -> AnyClass{ // ・・・(2)
return AVPlayerLayer.self // ・・・(2)
}
}
(1) !のForced Unwrappingを付けないと
[パス]: A non-failable initializer cannot chain to failable initializer
'init(coder:)' written with 'init?'
のエラーが発生します。これはどういった意味で、なぜ「!」が必要なのでしょう?
(2) のlayerClass()をoverrideしていますが、
(2-1) 返り値が AnyClassとは?
(2-2) AVPlayerLayer.selfとは?
全く見慣れないコードでどのような理解をすればいいのかわかりません。
参考になるページURLでもかまいません。ご教授のほどいただけると幸いです。