В Objective-c, если два класса принимают конкретный протокол, могут ли экземпляры классов использоваться взаимозаменяемо?
Скажем, у меня есть следующий код:
@protocol MyProtocol
@required
@property (nonatomic, retain) SomeObject *object;
@end
@interface ClassA <MyProtocol>
@property (nonatomic, retain) SomeObject *object;
// ...
@end
@interface ClassB <MyProtocol>
@property (nonatomic, retain) SomeObject *object;
// ...
@end
Можно ли заменить (id <MyProtocol>)instanceOfClassB
когда метод ожидает экземпляр ClassA
?