The < > brackets indicate that the clacketytankAppDelegate conforms to the UIApplicationDelegate protocol. In Objective-C, protocols are similar to interfaces in Java. They are merely a collection of methods, and a class which conforms to a protocol must implement all of those methods (or have one of its super classes implement those methods. You can specify your own protocol like so:
@protocol DiscoDancer
- (void)getDown;
- (void)getFunky;
@end
Then, if you want, you can create a method like so:
- (void)playThatFunkyMusic:(NSObject<DiscoDancer>* aWhiteBoy)
{
[aWhiteBoy getDown];
[aWhiteBoy getDown];
[aWhiteBoy getFunky];
}
When the code is compiled, it will throw a warning if any classes which conform to a protocol don't implement all of its methods, or if an object which does not conform to a protocol is passed into a method like playThatFunkyMusic:.
You can also make an object conform to multiple protocols like so:
@interface KungFuFighter : NSObject <DiscoDancer, SexGod>
And finally, you can check at runtime if an object conforms to a protocol like so:
if([aWhiteBoy conformsToProtocol:@protocol(DiscoDancer)]){
All of the above code assumes that you're using Cocoa/NSObject as your base class. If you aren't the code will be a little different. E.g., you'll use conformsTo: instead of conformsToProtocol:. It also assumes you have defined a SexGod protocol somewhere.