Что произойдет, если мой класс соответствует двум протоколам с одинаковым свойством?
Допустим, у меня есть два протокола
@protocol Playlist<NSObject>
@property(nonatomic, copy) NSString *title;
@property(nonatomic, assign) NSUInteger trackCount;
@end
а другой как
@protocol Album<NSObject>
@property(nonatomic, copy) NSString *name;
@property(nonatomic, assign) NSUInteger trackCount;
@end
и есть класс, который соответствует этим протоколам
.h файл
@interface MusicLibrary <Playlist, Album>
@end
.m файл
@implementation MusicLibrary
@synthesize title;
@synthesize name;
@synthesize trackCount;
@end
На какое свойство trackCount оно будет ссылаться? Могу ли я использовать trackCount дважды?
Это конечно не дает никакой ошибки времени компиляции.
1 ответ
Мне кажется, что вы неправильно моделируете свои данные. То, как вы настраиваете musicLibrary, это ОБА и список воспроизведения, и альбом. Я думаю, что более правильная модель будет иметь MusicLibrary, содержащую много плейлистов и много альбомов. Что-то вроде:
@property (nonatomic, strong) NSArray<Album>* albums;
@property (nonatomic, strong) NSArray<Playlist>* playlists;