我有一个带有自定义对象的字典数组。 现在,我正在比较要添加和更新的对象。 逻辑很简单,即添加不存在的数据并更新字典中的任何更改。
用户是自定义对象类型:
@objc public class User: NSObject , Mappable
我可以从getUserID中获取用户ID
下面的代码从我传递用户对象的地方在for循环中执行。
var peopleList = [User]()
if self.peopleList.count > 0 {
if self.peopleList.contains(where: {$0.getUserID() == users.getUserID()})
{
// check for any update in dist
if let index = self.peopleList.index(of: users)
{
if users.isEqual(self.peopleList[index])
{
print("equal no updates")
}
else
{
print("need to updates objects..")
}
}
//already exist room
}
else
{
self.peopleList.append(users)
}
}
我知道这可能与等值
所以我正在使用以下功能
func isEqual<T: Equatable>(type: T.Type, a: Any, b: Any) -> Bool? {
guard let a = a as? T, let b = b as? T else { return nil }
return a == b
}
但是我得到index = nil.
有什么想法或建议来解决。
如果有其他有效的方法可以解决,则非常欢迎他们。
答案 0 :(得分:1)
我认为此简化版本应该可以使用
null