Short answer: resource conservation. The textLabel property is optional to allow UILabel to initialize lazily. In other words, a property remains zero unless you are actually trying to access it.
You can verify this in the debugger by examining an instance of your UITableViewCell:
let cell = dequeueReusableCellWithIdentifier(MyCell.cellIdentifier, forIndexPath: indexPath) as! MyCell
cell.textLabel.text = "test"
source
share