在Swift 4中添加/更新自定义对象字典数组

时间:2018-08-25 10:13:51

标签: ios arrays swift dictionary

我有一个带有自定义对象的字典数组。 现在,我正在比较要添加和更新的对象。 逻辑很简单,即添加不存在的数据并更新字典中的任何更改。

用户是自定义对象类型:

 @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. 有什么想法或建议来解决。 如果有其他有效的方法可以解决,则非常欢迎他们。

1 个答案:

答案 0 :(得分:1)

我认为此简化版本应该可以使用

null