//'weak' must not be applied to non-class-bound 'any ListNotesDelegate'; consider adding a protocol conformance that has a class bound
//Whenever we want to create a weak reference the parent of object must conform to a class like AnyObject or UILabel etc.
//Example - 1
@IBOutlet weak private var titleLbl: UILabel! //Here UILabel is a class
//Example - 2
protocol ListNotesDelegate {
func refreshNotes()
func deleteNote(with id: UUID)
}
var delegate: ListNotesDelegate? //You cannot assign this as weak var
//To define it as weak -
protocol ListNotesDelegate:AnyObject {//Here AnyObject is a type alias for multiple classes
func refreshNotes()
func deleteNote(with id: UUID)
}
weak var delegate: ListNotesDelegate?