Эта проблема связана с наличием двух разных условий для сравнения структуры.
Обычно я хотел бы, чтобы структура была уникальной, если ее идентификатор уникален. Но это не является частью проблемы здесь ... здесь, мне нужно создать уникальный набор из них, где уникальность зависит от множества условий. Я создаю массив из условие замыканий, а затем тестирую каждое в пользовательском TimeSeries
классе, это план (хотя способ переопределения условного набора позволил бы мне использовать простое просто отлично). Но я сталкиваюсь с проблемой самих замыканий.
{(_ entry: TimeSeriesEntry, _ set: [TimeSeriesEntry]) -> Bool in
return !set.contains({ item in item.id.isEqualToString(entry.id) })
}
Мне не ясно, почему эти отчеты Cannot invoke 'isEqualToString' with an argument list of type '(String)'
TimeSeriesEntry.id определены как String
not (String):
struct TimeSeriesEntry: Codable, Equatable {
let id: String
let uid: String
let date: Date
let apps: [String:Double]
let locations: [String:Bool]
}