gpt4 book ai didi

arrays - 带有可选参数的 Swift 数组扩展

转载 作者:行者123 更新时间:2023-11-28 06:55:21 27 4
gpt4 key购买 nike

我为 Array 创建了简单的扩展,它将只附加唯一的元素。在我想使用一系列可选值之前,它工作正常。从那以后我不断出错键入“事件?”不符合协议(protocol)“Equatable”

事件类

import RealmSwift
class Event: Object,Equatable {
dynamic var id = ""
}

func ==(lhs: Event, rhs: Event) -> Bool {
return lhs.id == rhs.id
}

扩展

extension Array where Element : Equatable {
mutating func appendUniqueContentOf(elements:[Element]){
for ele in elements {
if (!contains(ele)){
append(ele)
}
}
}
}

用法

var newEvents:[Event] = someEvents()
var events = [Event?]()
events.appendUniqueContentOf(newEvents)

问题我不明白这种情况。 Event 类符合该协议(protocol)。我也尝试添加 == 功能的其他组合,但没有成功。

我不知道如何处理这个问题。这与我的延期有关吗?我应该如何正确处理它?你能告诉我正确的轨道吗?

最佳答案

Event?Optional<Event> 的语法糖.自 Optional不符合 Equatable ,也不会 Optional<Event> .

虽然可能,但我强烈反对实现 Equatable对于 Optional .话虽如此,您可能应该重新考虑并尝试仅使用 Array<Event> .

关于arrays - 带有可选参数的 Swift 数组扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33791141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com