Я загрузил исходный код приложения под названием 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 мог это сделать?