understanding methods in objective-c
iphone, methods, objective-c
Solution
Your object has been set as the data source of the UITableView somewhere. Most likely, by making a connection in InterfaceBuilder, though it is straightforward to do so in code by setting the `dataSource` property of the UITableView:
- (void) setUpMyJunkMan
{
myTableView.dataSource = self;
}
Once you have set your object as the data source, the table view will invoke the method as needed to determine what it needs to draw or how it needs to respond to events.
Your object is required to implement the `UITableViewDataSource` protocol (though, if you connected the data source via InterfaceBuilder, there may not be a complaint if you don't -- it is more of a compile time validation than a runtime one).
If you look at the declaration of `UITableViewDataSource`, you'll see that a number of methods are `@optional`. The rest are `@required`; you must implement them to fulfill the contract of the protocol.
This is the key difference between data sources and delegates. Delegates can optionally implement any of the declared methods. Data sources create a much more formal relationship between the two objects wherein some of the methods must be implemented.
Problem
for example we use this method in the tableview ``` - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 16; } ``` i want to learn we don't call this method in anywhere but application reads this value how is it being? there are a lot of methods like this we did not call.