Finally understood how delegates should be used - KLBStringFormatProtocol has the method "(void) stringComparisonResult:(bool)result". KLBAppDelegate delegates string comparison to another object (delegate) - KLBAppDelegate only implements the protocol's method - inside, it sends notifications based on whether the result was true or false.

However, the actual "string comparison" is done by the delegate object that follows the protocol (the object is named KLBStringFormatProtocol also, but we naming it KLBStringComparisonDelegate could've been clearer).

That delegate object has a reference to a delegating object that follows the protocol (KLBAppDelegate). When the delegate object finishes its string comparison, it tells the delegating object that it is done via the protocol method - which, as said above, then sends the necessary notifications.

WOOT!