相談内容
NSOrderedSet
を使っても重複する要素が削除されず原因が分かりません。。
Swift
1let books: [Book] = [.init(title :"AAA", imageURL: "AAA"), .init(title :"AAA", imageURL: "AAA")] 2let set = NSOrderedSet(array: books).array as! [Book] 3print(set) // 重複削除されない
Bookクラスは以下の取り定義しています。
Setはハッシュ値を見て重複チェックしていると考えているので、重複削除できるはずだと思うのですが、
なぜできないのでしょうか?
Swift
1class Book: Codable, Hashable { 2 3 var title: String 4 var imageURL: String 5 6 init(title :String, imageURL: String) { 7 self.title = title 8 self.imageURL = imageURL 9 } 10 11 static func == (lhs: Dating, rhs: Dating) -> Bool { 12 return lhs.title == rhs.title && lhs.imageURL == rhs.imageURL 13 } 14 15 public func hash(into hasher: inout Hasher) { 16 hasher.combine(title) 17 hasher.combine(imageURL) 18 } 19}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。