使用 NSSet 按顺序保存多对一的最佳实践?

Best Practice for saving many to one in order using NSSet?

我是 Swift 的新手,想知道是否有人可以给我一些提示,说明如何将数据存储在 Core Data NSSet 中,该 NSSet 是为具有一对多关系的项目排序的。我有一本书class(很多),我有一个架子class(那个)里面有一个NSSet的书。

class Shelf: NSManagedObject {

    @NSManaged var books: NSSet
}

class Book: NSManagedObject {
    @NSManaged var title: String
}

我可以将书籍添加到书架并且行之有效,但每次我尝试访问它们时顺序似乎都是随机的,而不是我添加它们的顺序。我希望按照我添加的顺序保留结果。有没有办法在不添加另一个 class 之类的 bookOnShelf 来存储位置的情况下做到这一点?

var booksInOrder = myShelf.books.AsAnyObject as [Book]
for(var i = 0; i < mySlelf.books.count; i++)
{
   output(booksInOrder[i])
}

更新您的 CoreData 模型以启用关系的 "Ordered" 属性。

您还需要将代码中的 属性 声明更改为:

    @NSManaged var books: NSOrderedSet