? Equivalent to a layer of packets on the property, that is, a optional value, and optional has none and some two values, the property is not initialized when defined by the result is swift automatically initialized to nil value (that is, none in optional, essentially a value), When the property is nil during use, its value is. None to judge; we should judge if value {} Before using it in a rigorous manner; is relatively implicitly-style unpacking, the call process will be added by default! ;
So: In the controller we have determined that the added controls are initialized in Viewdidload and are not destroyed in the life cycle, so consider them! and relative to some of the properties of the constant string,cgfloat type, in the period may be empty, so use?
Role: in attributes? is to avoid crash for nil, and! Avoid repetitive judgments, efficient and concise
In Swift?! Weak unowned's understanding.