Изтеглих изходния код за приложение, наречено adium, защото исках да науча какаото по-добре, като изследвам кода на други хора, но има нещо много объркващо за мен в този интерфейс:
@interface AIAdium : NSObject <AIAdium, SUVersionComparison> {
@private
IBOutlet NSObject <AIMenuController> *menuController;
IBOutlet NSObject <AIInterfaceController> *interfaceController;
IBOutlet SUUpdater *updater;
NSObject <AIAccountController> *accountController;
NSObject <AIChatController> *chatController;
NSObject <AIContactController> *contactController;
NSObject <AIContentController> *contentController;...
Продължава така. Това, което не разбирам, е как NSObjects се съобразяват с протоколи като AIAccountController. Мислех, че трябва да внедриш методите, дефинирани в интерфейса на протокола, за да се съобразиш с него, но как би могъл NSObject да прави това?