Я потратил много времени на это.Свойство (isSender
) мастер / суперкласса UITableViewCell всегда возвращает ноль, когда свойство установлено из tableView:
Вот мастер-класс Cell:
class MasterTableViewCell: UITableViewCell {
@IBOutlet weak var userProfileImage:UIImageView!
@IBOutlet weak var postTextLabel:UILabel!
var isSender:Bool!
override func awakeFromNib() {
// code here
}
Вотподкласс ячейки:
class VideoPostTableViewCell: MasterTableViewCell {
@IBOutlet weak var playButton: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
if isSender == true {
print("true")
}
else {
print("false")
}
Вот метод tableView
:
func configureCell(indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "VideoPostTableViewCell") as? VideoPostTableViewCell else {
return UITableViewCell()}
let x = post.userID
let y = user?.uid
let isEqual = (x == y)
cell.isSender = isEqual
return cell
isSender
всегда возвращает nil
Примечание: nil
isтакже вернулся, когда я установил isSender
непосредственно в VideoPostTableViewCell
.Кроме того, когда я устанавливаю точку останова на let isEqual = (x == y)
, isEqual
возвращает true
Last, в VideoPostTableViewCell
и MasterTableViewCell
есть другие свойства, которые все установлены правильно с помощью того же метода вtableView
.Я оставил их вне вопроса, чтобы уменьшить код.
Любая помощь с благодарностью.Спасибо!