我有一个自定义类,定义如下:
class DisplayMessage : NSObject { var id : String? var partner_image : UIImage? var partner_name : String? var last_message : String? var date : NSDate? }
现在我有一个数组myChats = [DisplayMessage]?。该id字段对于每个DisplayMessage对象都是唯一的。我需要检查数组并从中删除所有重复项,从本质上确保数组中的所有对象都具有唯一的id。我已经看到了一些使用的解决方案NSMutableArray,Equatable但是我不确定如何在这里调整它们。我也知道,Array(Set(myChats))但这似乎不适用于自定义对象数组。
myChats = [DisplayMessage]?
id
DisplayMessage
NSMutableArray
Equatable
Array(Set(myChats))
您可以使用一组字符串来完成此操作,如下所示:
var seen = Set<String>() var unique = [DisplayMessage] for message in messagesWithDuplicates { if !seen.contains(message.id!) { unique.append(message) seen.insert(message.id!) } }
想法是保留一组到目前为止我们已经看到的所有ID,循环遍历所有项目,然后添加那些我们尚未看到的ID。