gpt4 book ai didi

ios - Swift:CoreData 和通用的 NSOrderedSet

转载 作者:IT王子 更新时间:2023-10-29 05:30:46 26 4
gpt4 key购买 nike

我不确定我是没有找到任何信息还是不可能。

我查了好几页。我想在 Swift 中使用 NSOrderedSet 的通用版本。

使用 Set 你可以这样做:

Swift’s Set type is bridged to Foundation’s NSSet class. Source: Apple Docs - Sets

在 NSManagedObject 子类中,您只需将 NSSet 更改为 Set 即可。 (测试过)

@property NSArray<NSDate *> *dates;
@property NSSet<NSString *> *words;
@property NSDictionary<NSURL *, NSData *> *cachedData;

var dates: [NSDate]
var words: Set<String>
var cachedData: [NSURL: NSData]

Source: Apple Docs - Lightweight Generics

但我找不到任何对 Swift 中有序集的引用。我可以使用 Objective-C 中的 NSOrderedSet,但那时我不会在 Swift 中使用泛型。

是否可以在 Swift 中定义集合中的顺序?

最佳答案

不,Swift 中没有有序集,老实说,您不应该使用有序集句点。它们很少使用。

But some times, its useful. So you don't have to sort your data by yourself. Especially when you have an entity with a list of sub entities they won't be sorted because it is a set. And then you would have to create a array to have the data prepared in a specific order because a plain set doesn't keep its order. So for core data it is useful especially in use with the NSFetchedResultsController.

这是对 Core Data 的惰性添加,本不应该发生。它永远不会比编写您自己的排序例程更有用或更高效。在子类中编写一个方便的方法来生成有序数组将比使用 NSOrderedSet 更快、更高效。

当您使用 NSFetchedResultsController 时,它完全没用,因为 NSFetchedResultsController 会为您安排一切。

关于ios - Swift:CoreData 和通用的 NSOrderedSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837280/

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