why is uitextfield text optional?
In Objective-C there was no need to make a difference between them because you can call methods on nil in Objective-C. Also, there was no way in Objective-C to prevent users from assigning nil to a property. The resulting contract is that text can be optional. In Objective-C that makes no difference.