Прежде чем пометить мою проблему как дубликат, пожалуйста, пройдите мой вопрос,
Я использовал шаблон делегата в своем приложении, и весь мой код, связанный с делегатами, работает нормально. Но теперь есть один класс, имеющий делегат ноль в точке, которую я описываю ниже.
//protocol class,
protocol CampaignCollectionViewCellDelegate: class {
func campaignCollectionViewCell(_ Cell: CampaignCollectionViewCell, didContributePressed: UIButton, at indexPath: IndexPath)
}
// class where delegate is assigning.
class CampaignCollectionViewCell: UICollectionViewCell {
weak var delegate: CampaignCollectionViewCellDelegate? = .none
//here i am getting delegate as nil.
@IBAction func didContributeButtonPressed(_ sender: UIButton) {
if self.delegate != nil {
self.delegate?.campaignCollectionViewCell(self, didContributePressed: sender, at: self.indexPath)
}
}
}
В моем основном классе я делаю что-то вроде этого
@IBOutlet weak var campaignCollectionView: UICollectionView!
и viewDidLoad()
campaignCollectionView.delegate = self
campaignCollectionView.dataSource = self
здесь, когда я отлаживал, я получил, что мой делегат не ноль, но имеет некоторую ссылку на объект, я попытался использовать этот способ также
var campaignVC = CampaignCollectionViewCell()
campaignVC.delegate = self
но это также не сработало для меня, я сделал то же самое со всеми другими моими методами делегатов, и они работают нормально, я понятия не имею, почему это показывает мне такое поведение. Я прошел через каждый вопрос, связанный с делегатами, но ни один из них не помог мне.