I recently started working with iOS applications. I could see that, many of the off-the-shelf objects provided by the UIKit uses delegate pattern. For example, a UITableView has a datasource and a delegate for it to provide with data and other other table view functionality.
So, is the underlying design pattern behind this delegate pattern, strategy design pattern? The reason in favor to me is that, in strategy pattern, the delegating object has a reference to a delegate which confirms to a particular interface.
So lets say, I have a class MyDataSource which confirms to the protocol / interface UITableViewDataSource and I implement the behaviors in MyDataSource. And I pass an instance of MyDataSource to UITableView. This is what we do in strategy pattern. So is my understanding right?