What is the purpose of reuseIdentifier? What is the benefit of setting it to a non-nil value?
It groups together similar rows that differ in content, but have similar layouts in a UITableView. A UITableView allocates sufficient UITableViewCell objects to just display the content that is visible in the table.
If you set reuseIdentifier to non-nil value, then UITableView will attempt to reuse an allocated UITableViewCell using the same reuseIdentifier when you scroll the table view.
If you do not set the reuseIdentifier, the UITableView will allocate new UITableViewCell objects for new items that will scrolls into view.