One of Objective C's features was being loosly typed. You could send any message to any id by testing "respondsToSelector". Now, it seems that warning messages appear for delegates which are not defined by a protocol. So, is it the intert to force using protocols for every delegate? We've got a lot of legacy code for which I really hate creating potocols to silence these warnings.
I notice that collection classes now seem to want a type specified for what is collected. That's probably a good thing and consistent with the miigration to Swift.