What is the purpose of reuseIdentifier? What is the benefit of setting it into a non-nil value?

The reuseIdentifier is used to group together comparable rows in a UITableView, that is, rows that differ only in content but have similar layouts otherwise. In most cases, a UITableView will only allocate enough UITableViewCell instances to show the table’s visible content.

When the table view is scrolled, if reuseIdentifier is set to a non-nil value, the UITableView will try to reuse an already allocated UITableViewCell with the same reuseIdentifier. If no reuseIdentifier is specified, the UITableView will be required to create new UITableViewCell instances for each new item that scrolls into view, perhaps resulting in stuttering animations.