swift - 为所有对象重置核心数据 bool

标签 swift core-data

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

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

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) }
}

关于swift - 为所有对象重置核心数据 bool ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57166625/

相关文章:

ios - 如何在 didSelectRowAtIndexPath 函数之外更改标签的颜色?

ios - 快速添加 subview Controller

ios - Swift:FCM改变通知声音

Swift 转换中的 C 结构缺少属性

ios - 向 CoreData 添加新版本

ios - 核心数据迁移需要多长时间启动?

swift - .sink 和 Subscribers.Sink 有什么区别?

ios - 如果目标对象在 Coredata 的另一个源中,则不要删除它

ios - 核心数据迁移崩溃

ios - SQLite、CoreData 还是静态数据?