Ваш вопрос немного неясен. Протокол и делегат - это две совершенно разные, хотя и взаимосвязанные вещи - яблоки и апельсины. Протокол определяет список методов, на которые объект может или должен ответить:
@protocol Document
+ (id)documentWithContentsOfURL: (NSURL *)aURL;
- (void)writeToURL: (NSURL *)aURL error: (NSError **)outError;
@end
Делегат - это объект, обычно экземпляр пользовательского класса, который передается другому объекту для пользовательской обработки или обратной связи - этот последний объект делегатов работает с объектом делегата.
Вы спрашиваете, как преобразовать категорию делегата в NSObject в протокол делегата? (Первый использовался Apple для определения обязанностей и способностей делегата; последний - более новый способ сделать то же самое.) Если это так, то обычно это выглядит примерно так:
Категория делегата для объекта NSObject
@interface NSObject (WidgetDelegate)
- (void)doSomethingWithWidget: (Widget *)w;
@end
@interface Widget : NSObject
@property (readwrite, assign) id delegate;
@end
Протокол делегата
@protocol WidgetDelegate <NSObject>
- (void)doSomethingWithWidget: (Widget *)w;
@end
@interface Widget : NSObject
@property (readwrite, assign) id <WidgetDelegate> delegate;
@end
Это то, что вы ищете? Если нет, можете ли вы уточнить, что именно вы пытаетесь сделать?