Mai*_*639 11 generics core-data ios nsorderedset swift
我不确定我是否只是没有找到任何信息,或者是否不可能.
我查了几页.我想在Swift中使用泛型的NSOrderedSet的泛型版本.
使用Set,您可以执行以下操作:
Swift的Set类型桥接到Foundation的NSSet类.来源: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]
Run Code Online (Sandbox Code Playgroud)
但我在Swift中找不到任何对有序集的引用.我可以使用Objective-C中的NSOrderedSet,但我不会在Swift中使用泛型.
是否有可能在Swift中定义一个订单?
不,在Swift中没有有序的设置,并且说实话,你不应该使用有序的设定期限.它们很少使用.
但有时候,它很有用.因此,您不必自己对数据进行排序.特别是当您拥有一个包含子实体列表的实体时,它们将不会被排序,因为它是一个集合.然后你必须创建一个数组,以便按特定顺序准备数据,因为普通集不能保持其顺序.因此,对于核心数据,它特别适用于NSFetchedResultsController.
它是核心数据的一个懒惰的补充,从来没有发生过.它比编写自己的排序例程更有用或更高效.在子类中编写一个方便的方法来生成有序数组比使用一个方法更快,更高效NSOrderedSet
.
当你使用NSFetchedResultsController
它时,它是完全无用的,因为NSFetchedResultsController
为你订购一切.