我曾經在主故事板中設計自定義單元格,並且一直運行良好,直到我試圖在外部「xib」文件中設計它。
我發現它更容易設計,設置約束條件等。
很顯然,這兩種方式都有一個UITableViewCell類。
我爲新的xib做了所有新的IBOutlets,Xcode沒有顯示任何錯誤,一切看起來都很好,而且工作得很好。
但是,晚會結束了與在xib中設計的自定義UITableViewCell有nil's
fatal error: unexpectedly found nil while unwrapping an Optional value
在self.photo.image = photo
class CellForMessages: UITableViewCell {
@IBOutlet weak var photo: UIImageView!
@IBOutlet weak var name: UILabel!
@IBOutlet weak var surname: UILabel!
@IBOutlet weak var count: UILabel!
override func prepareForReuse() {
self.photo = nil
self.name.text = nil
self.surname.text = nil
self.count.text = nil
}
func fillWithContent(photo: UIImage, name: String, surname: String, count: Int) {
self.photo.image = photo
self.name.text = name
self.surname.text = surname
self.count.text = String(count)
}
控制器文件擁有所有的東西,如:
let cell = tableView.dequeueReusableCell(withIdentifier: "messagesProfileCell", for: indexPath) as! CellForMessages
cell.fillWithContent(photo: image!, name: self.profiles[indexPath.item].userName!, surname: profiles[indexPath.item].userSurname!, count: count)
我甚至嘗試添加這段代碼,但有些人告訴我,這是沒有必要的,可以刪除水貨,
但我試過了,錯誤依然存在。
tableView.register(CellForMessages.self, forCellReuseIdentifier: "messagesProfileCell")
所有網點都是最新的,並在主界面設置了故事板標識。
我錯過了什麼?
我不想回到老式的電池設計方式。
謝謝!
此行self.photo = UIImageView()似乎是錯誤的 – zombie
根據@ zombie告訴self.photo = UIImageView()的插座已經有一個內存。如果你想更好地設置imageView ka圖像。 –