Swift 结构将不符合equatable,即使使用==set
我用一个switch语句来遍历一系列菜单项。我在每个案例中都得到了警告: 运算符函数“~=”要求“MenuItem”符合“equalable” 我想我知道这个错误的意思,但这是MenuItem的代码:Swift 结构将不符合equatable,即使使用==set,swift,Swift,我用一个switch语句来遍历一系列菜单项。我在每个案例中都得到了警告: 运算符函数“~=”要求“MenuItem”符合“equalable” 我想我知道这个错误的意思,但这是MenuItem的代码: struct MenuItem { let image: UIImage let title: String let body: String let storyboardName: String let storyboardID: String l
struct MenuItem {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
let landingItems: [LandingItem]
static func == (lhs: MenuItem, rhs: MenuItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
struct LandingItem {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
static func == (lhs: LandingItem, rhs: LandingItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
有没有办法让MenuItem呃。。。超级均衡?还是我遗漏了一些非常明显的东西?斯威夫特的打字安全性非常严格。即使您实现==它也不起作用,除非您声明符合等同协议
struct MenuItem: Equatable {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
let landingItems: [LandingItem]
static func == (lhs: MenuItem, rhs: MenuItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
struct LandingItem: Equatable {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
static func == (lhs: LandingItem, rhs: LandingItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
斯威夫特的打字安全性非常严格。即使您实现==它也不起作用,除非您声明符合等同协议
struct MenuItem: Equatable {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
let landingItems: [LandingItem]
static func == (lhs: MenuItem, rhs: MenuItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
struct LandingItem: Equatable {
let image: UIImage
let title: String
let body: String
let storyboardName: String
let storyboardID: String
static func == (lhs: LandingItem, rhs: LandingItem) -> Bool {
return lhs.storyboardID == rhs.storyboardID
}
}
如果我用字符串替换LandingItem,代码将编译。什么是LandingItem?@GeneZ.Ragan补充道!从Equatable@Ildar.Z哦。谢谢如果我用字符串替换LandingItem,代码将编译。什么是LandingItem?@GeneZ.Ragan补充道!从Equatable@Ildar.Z哦。谢谢因此,tl;医生:很明显。谢谢:)不客气@伊尔达:谢谢你的编辑。在电话上键入答案并不那么舒服;医生:很明显。谢谢:)不客气@伊尔达:谢谢你的编辑。在电话上键入答案并不那么舒服。