Search code examples
arraysswiftnsmanagedobject

Better find object with ID in array of NSManagedObject


I am trying to find and update object in array of NSManagedObjects.

I have this code that I dislike:

    var dataInPhone = [NSManagedObject]()    // Here is data to update
    var index = 0
    for album in self.dataInPhone {
        if album.objectID == anObject.objectID {   // anObject 
            break
        }else{
            index += 1
        }
    }
    dataInPhone[index] = anObject as! NSManagedObject

Is any way to do it better?


Solution

  • There is a method indexOf which supports also a closure as argument

    var dataInPhone = [NSManagedObject]()    // Here is data to update
    ...
    if let index = dataInPhone.indexOf({$0.objectID == anObject.objectID}) {
      dataInPhone[index] = anObject as! NSManagedObject
    }