On September 14th, 2017, we published revised versions of our Privacy Policy, Terms of Service and Website Use Policy and published a Cookie Policy. Your continued use of Lynda.com means you agree to these revised documents, so please take a few minutes to read and understand them.

- In order to support optional protocol requirements…in objective C, protocol is written in Swift Two…that contained optional requirements…needed to be marked with the @objc attribute.…In swift three, each optional requirement…needs to be individually marked with the @objc attribute.…I'm continuing in this same exercise file…from the previous video.…I clarified earlier that an optional property requirement…such as the subtitle property and has title,…is not the same thing as an optional requirement.…

To make subtitle an actual optional requirement,…first I'll add the optional keyword in its definition.…I get an error that informs me,…optional can only be applied to an @objc protocol.…So I'll add that attribute to the protocol definition.…And now I get another error,…indicating that optional requirements…are an objective c compatibility feature.…Along with a fix it to add the @objc attribute…to the requirement, I'll do that.…When making a protocol requirement optional,…it also relegates adoption of the protocol to classes.…