Есть три вида реализации протокола:Разница между ID <protocol> SomeObject и NSObject <protocol> * SomeObject
Первое:
@protocol FirstProtocol
...
@end
@property(nonatomic, weak) id<FirstProtocol> delegate;
Второе:
@protocol SecondProtocol<NSObject>
...
@end
@property(nonatomic, weak) id<FirstProtocol> delegate;
Третий:
@protocol SecondProtocol
...
@end
@property(nonatomic, weak) NSObject<FirstProtocol> *delegate;
Я просто знаю "<NSObject>
или NSObject<protocol>
" может позволить делегат назвать селектор NSObject. Но я не знаю, в чем разница между ними. И какая из них - лучшая Практика.