我想要完成的是以下内容:我需要将核心数据条目的数量限制为50.因此,如果用户输入第50个条目,那么应用程序将删除最旧的条目并将新条目添加到堆栈顶部。所以基本上,如果用户从不删除条目,并且核心数据中有50个条目,那么当用户尝试添加新条目时,应用程序将删除最旧的条目并添加用户的新条目。基本上,我试图有一个历史记录的东西,但我不希望用户能够超过50个条目,但我希望他们能够在50个限制时添加新条目,只需删除最古老的一个并添加最新的一个。最简单的方法是什么?我是核心数据的新手,很难理解其中的很多内容。这是我正在使用的代码/示例应用程序。 LINK TO EXAMPLE APP THAT I'M USING感谢您的帮助。
答案 0 :(得分:11)
假设您有一个名为History
的实体。最简单的解决方案是向您的实体添加creationDate
属性。然后使用它来管理History
个对象。
您需要三次抓取:
History
个对象的错误,然后计算它们。如果计数<50,则只需添加新的History
对象即可。 creationDate
。 (幸运的是,链接上的例子就是你所需要的。)creationDate
执行对象的提取并删除它。 然后添加新的历史记录对象。
答案 1 :(得分:1)
好的,没关系。 CoreData不会为你做这件事,但你可以自己做。
您可以使用NSFetchRequest
从您的上下文中检索对象,并可以使用-[NSManagedObjectContext deleteObject:]
删除它们。您可以使用NSSortDescriptor
个对象对它们进行排序。