gpt4 book ai didi

ios - iOS 7 CoreData 中的批量更新数据

转载 作者:行者123 更新时间:2023-12-01 18:13:50 24 4
gpt4 key购买 nike

有没有办法通过一个 SQL 查询来更新某个实体的所有对象?
不要获取和运行循环。

比如喜欢运行

UPDATE someEntity SET filed1 = value1 WHERE field2 = value2

最佳答案

iOS 8 引入了核心数据批量更新:

NSBatchUpdateRequest *batchRequest = [NSBatchUpdateRequest batchUpdateRequestWithEntityName:   [RSSItem entityName]];
batchRequest.propertiesToUpdate = @{NSStringFromSelector(@selector(read)): @YES};
batchRequest.resultType = NSStatusOnlyResultType; // NSStatusOnlyResultType is the default
batchRequest.affectedStores = @[...]; // Optional, stores this request should be sent to
batchRequest.predicate = [NSPredicate predicateWithFormat:@"..."]; // Optional, same type of predicate you use on NSFetchRequest

NSError *requestError;
NSBatchUpdateResult *result = (NSBatchUpdateResult *)[self.managedObjectContext executeRequest:batchRequest error:&requestError];

if (result) {
// Batch update succeeded
} else {
NSLog(@"Error: %@", [requestError localizedDescription]);
}

但是,它不会改变 上下文 :它直接更改持久存储。这意味着没有进行验证,之后您需要更新您的 UI。

此答案基于 this post by Matthew Morey .

关于ios - iOS 7 CoreData 中的批量更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24955709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com