2016-04-14 18 views
0

我想查找和更新NSManagedObjects数组中的对象。在NSManagedObject的数组中更好地查找ID为对象的数组

我有这样的代码,我不喜欢:

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 

是没有办法做的更好?

回答

0

有一种方法indexOf这也支持闭包作为参数

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

我宣布anObject为'AnyObject'所以我需要使用'作为! NSManagedObject',但这是我想要的。非常感谢。 –

+0

anObject只在类似'didChangeObject anObject:AnyObject'的函数头中声明,否则是来自Core Data的'fetchedResultsController.fetchedObjects'的元素 –

+0

Swift建议尽快将'AnyObject'强制转换为正确类型,例如'fetchedResultsController .fetchedObjects as! [NSManagedObject]' – vadian