Why should a delegate be restricted to a class?

Hello Team,

Could you explain this recommendation a bit further?

Delegates are plain old Swift protocols. But keep in mind a couple of additional pieces of convention when making delegate properties. You defined the NetworkingDelegate as inheriting from AnyObject. As mentioned earlier in this chapter, this restricts the protocol so only classes can conform to it. Because delegates typically are used to affect the behavior of class instances, it makes sense that the delegate is a class as well.

This is the first time I see a recommendation that a delegate protocol should be restricted to a class. Could you explain a bit more why this is? Thank you!