Before the term "informal agreement" is not very understanding, after reviewing the understanding of their own simple comb,
Here is an introduction to the informal agreement in Apple's official document Cocoa Core competencies:
An informal protocol are a category on NSObject , which implicitly makes almost all objects adopters of the protocol. (A category is a language feature this enables you to add methods to A class without subclassing it.) Implementation of the methods in a informal protocol is optional. Before invoking a method, the calling object checks to see whether the target object implements it. Until Optional Protocol methods were introduced in OBJECTIVE-C 2.0, informal protocols were essential to the the-to-the-the-the-the-the- N and AppKit classes implemented delegation.
We can see that the informal agreement is the categorythat we commonly use, and the formal agreement is a list of methods that are named in @protocol way, and unlike the informal agreement, it requires a display of compliance agreements.
Informal agreements and formal agreements in the OBJECT-C