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 Message
s. How do开发者_C百科 I fetch Conversation
s sorted by the sentDate
of it's oldest Message
?
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 Conversation
s by messages.@max.sortedDate
, according to Xcode Documentation: Key-Value Coding Programming Guide: Collection Operators.
精彩评论