Я использую Eureka в своем проекте и хочу использовать тип [Node] для типа ячейки Value:
final class TreeTVCell: Cell<[Node]>,CellType{//#1:compiling Error in Swift 4.0
}
Как вы знаете, тип значения Cell должен соответствовать протоколу Equatable , и классу Node, написанному Objc, это очень просто:
#import "Node.h"
@implementation Node
- (instancetype)initWithParentId : (int)parentId nodeId : (int)nodeId name : (NSString *)name depth : (int)depth expand : (BOOL)expand{
self = [self init];
if (self) {
self.parentId = parentId;
self.nodeId = nodeId;
self.name = name;
self.depth = depth;
self.expand = expand;
}
return self;
}
@end
Мой проект скомпилирован нормально в Swift 4.1 (Xcode 9.3.1), но если я открою проект с Xcode 9.2 (Swift 4.0), он будет скомпилирован неудачно, он жалуется, что:
Тип '[Node]' не соответствует протоколу 'Equatable'
Мой вопрос: почему он скомпилирован нормально в Swift 4.1 и не работает в Swift 4.0?и как это исправить в Swift 4.0?Спасибо:)