of the interface you're implementing. - (unsigned)interfaceVersion; // Filters the bitmap and returns a modified version. - (NSBitmapImageRep *)filteredImageRep:(NSBitmapImageRep *)imageRep; @optional // Returns what to display in the Filter menu. - (NSString *)menuItemString; // Returns the window controller for the settings configuration window. - (NSWindowController *)configurationWindowController; @end Use a Formal Protocol
version of the interface you're implementing. - (unsigned)interfaceVersion; // REQUIRED // Filters the bitmap and returns a modified version. - (NSBitmapImageRep *)filteredImageRep:(NSBitmapImageRep *)imageRep; // OPTIONAL // Returns what to display in the Filter menu. - (NSString *)menuItemString; // OPTIONAL // Returns the window controller for the settings configuration window. - (NSWindowController *)configurationWindowController; @end Use an Informal Protocol
easily accessible through NSBundle. - There are three choices for plug-in architecture in Cocoa: - Formal protocol - Informal protocol - Abstract base class