重置所有对象的核心数据布尔值



我想将核心数据实体中每个对象的布尔值设置为 false。

这就是我目前在核心数据中设置单个值的方式:

func updateFriendSaidHi(friend: Friends, in context: NSManagedObjectContext = CoreDataStack.shared.container.newBackgroundContext()){
        context.performAndWait {
            // Update value to true in core data
            friend.saidHi = true
            saveToPersistentStore()
        }
    }

您可以遍历实体中的每个项目,但我猜有更好的方法来做到这一点。

任何输入都会很棒。

您可以使用键值编码更改所有记录的属性

let request = NSFetchRequest<Friends> = Friends.fetchRequest()
context.performAndWait {
    do {
       let friends = context.fetch(request)
       (friends as NSArray).setValue(true, forKey:"saidHi")
       saveToPersistentStore()
    } catch { print(error) }
}

最新更新