Core Data: Sort by Relationship's Attribute

I'm building an open-source clone of iPhone's native Messages app called AcaniChat on GitHub.

I have a Conversation entity and a Message entity with a sentDate attribute. Each Conversation can have many Messages. How do I fetch Conversations sorted by the sentDate of it's oldest Message?

Answers


The best way I can think of doing this is by adding an attribute to the Conversation entity called lastMessageSentDate and, every time a Message comes in and gets added to a Conversation, setting that conversation's lastMessageSentDate to that message's sentDate. I'll also probably want to add an attribute called lastMessageText to the Conversation entity as well because I want to show the text of the last message for a conversation on the ConversationsViewController (just like the native iPhone Messages app does), and doing so will save me from having to do another Core Data fetch for the Message.

Actually, I just had an idea! Maybe I can sort Conversations by messages.@max.sortedDate, according to Xcode Documentation: Key-Value Coding Programming Guide: Collection Operators.


Need Your Help

Ugly swing fonts under ratpoison

java swing window-managers

I am writing a small application in swing. I am using Ratpoison as my window manager (with wmname LG3D) and Netbeans as IDE. My application fonts when started from KDE or directly from Netbeans l...

Dynamically Created html elements saved to database?

javascript jquery mysql database

I have been teaching myself javascript and now wish to take my program live so I can develop further to learn more and more.