提问人:Yagnesh Londhe 提问时间:11/22/2022 更新时间:11/23/2022 访问量:63
如何将 NSBatchUpdateRequest 与动态值一起使用
How to use NSBatchUpdateRequest with dynamic values
问:
我有一个名为“Student”的实体,它有名为“firstName”和“lastName”的列。我的现有实体如下所示
名字 | 姓氏 |
---|---|
彼得 | 摩根 |
亚当 | 海登 |
安德鲁 | 贾尔斯 |
现在,我创建了一个名为“compositeName”的新属性,它应该包含联合名称,如“Peter Morgan”、“Adam Hayden”。如何在核心数据中使用 NSBatchUpdateRequest 实现此目的?
批量更新后,实体应如下所示
名字 | 姓氏 | 复合名称 |
---|---|---|
彼得 | 摩根 | 彼得·摩根 |
亚当 | 海登 | 亚当·海登 |
安德鲁 | 贾尔斯 | 安德鲁·贾尔斯 |
我在网上搜索了教程,但找不到具有动态值的教程。我找到了NSBatchUpdateRequest包含静态值的解决方案
答:
0赞
jrturton
11/23/2022
#1
您可以在表达式的部分中使用动态值 via,但不幸的是,似乎无法使用 执行字符串连接。NSExpression
propertiesToUpdate
NSExpression
我会质疑您是否需要这个附加属性 - 为什么不将其设置为托管对象上的计算变量:
extension Student {
var compositeName: String { firstName + lastName }
}
这样可以防止复合名称和名称组件不同步。
另一种方法是查看 Core Data 中的派生属性,但同样,它们是基于的,因此字符串连接不可用。NSExpression
评论
0赞
Yagnesh Londhe
11/25/2022
非常感谢@jrturton。我只是在学习 NSBatchUpdateRequest。本教程的大部分内容都是使用 NSBatchUpdateRequest 更新实体中多个记录的静态值。我对使用 NSBatchUpdateRequest 处理动态值有疑问,所以我发布了一个带有一个随机示例的问题。再次,非常感谢您的回复。
评论