2017-07-25 53 views
0

我想做一個簡單的可重用的視圖,由於某種原因我得到一個非特定的錯誤。我正在關注本教程https://www.youtube.com/watch?v=H-55qZYc9qI。如上所述,這是我第一次嘗試這個。一切正常編譯,但當我去那個視圖我得到一個運行時錯誤。奇怪的是,我完全按照教程進行操作,並得到錯誤信息。名稱是正確的,並且視圖連接正確。任何建議IOS Swift使用可重複使用的筆尖文件混淆錯誤

import UIKit 

class streamShared: UIView { 
    @IBOutlet var view: streamShared! 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     UINib(nibName: "streamShared", bundle: nil).instantiate(withOwner: self, options: nil) 
     addSubview(view) 
} 
} 

enter image description here

enter image description here

回答

1

你也得爲自己的無限遞歸:streamShared.init(coder:)的自稱。

我覺得子視圖應該是UIView類型:

import UIKit 

// PLEASE name your classes, structs and enums Capitalized! 
class StreamShared: UIView { 

    var view: UIView! 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     self.view = UINib(nibName: "streamShared", bundle: nil).instantiate(withOwner: self, options: nil) 
     addSubview(view) 
    } 
} 

而且,在你的XIB文件更改類的主要觀點爲默認UIView(灰色);否則,當讀取xib並實例化其中包含的視圖時,StreamShared.init(coder:)仍將被調用。

+1

完美的非常感謝 – user1591668