按接收日期的顺序显示两个自定义对象数组

Posted

技术标签:

【中文标题】按接收日期的顺序显示两个自定义对象数组【英文标题】:Display two arrays of custom objects in order of date received 【发布时间】:2016-09-07 10:29:59 【问题描述】:

我有两个自定义对象数组([InboundMessages],[OutboundMessages])

    struct InboundMessage 

        let senderName: String!
        let senderText: String!
        let senderProfileImageName: String!
        let timeAndDateMessageReceived: NSDate!
        let hasBeenRead: Bool!
        let messageUUID = NSUUID().UUIDString
        let conversationUUID: NSUUID = NSUUID()

    
    struct OutboundMessage 

        var replyText: String!
        var messageUUID = NSUUID().UUIDString
        var timeAndDateMessageSent: NSDate!
        var conversationUUID: NSUUID = NSUUID()
    

与另一个自定义对象“对话”一起保存

    class Conversation 

        var uUID: NSUUID!
        var inboundMessages: [InboundMessage] = []
        var outboundMessages:[OutboundMessage] = []

    

我想在表格视图中显示按日期排序的对话,就像正常对话一样,但经过多次尝试后,我无法弄清楚如何去做。我觉得最好将它们全部推入一个排序数组,然后让 tableview 处理它,但我仍然不确定如何对它们进行排序,然后如何将两个不同的自定义对象放入同一个数组中?

您可能已经猜到我对 swift 和 ios 非常陌生,因此我们将不胜感激。

谢谢

【问题讨论】:

我应该说重复吗? ***.com/questions/29902781/… 或 ***.com/questions/26577496/… 你想的没错,只要把它们放在同一个数组中,按日期排序,但是为每个对象添加另一个属性来检查它是入站还是出站,那么你可以轻松正确地放置它们 如何将两个不同的自定义对象放到同一个数组中,可以像这样[AnyObject]使用AnyObject数组 @ArslanAsim 虽然这肯定会起作用,但它不是最佳解决方案。您最好使用自定义协议并让每个结构实现它,然后使组合数组包含该协议的成员。 感谢您的快速回复!如何使用两个自定义对象按日期对数组进行排序?即如何访问对象中的每个日期。然后正如@Tj3n 所说,我如何向它们添加另一个属性以检查它们是否是入站/出站等?我试过分别谷歌搜索这两个问题,但找不到答案。谢谢 【参考方案1】:

1.创建基类:

class Message 
    let timeAndDateMessageReceived: NSDate!
    let hasBeenRead: Bool!
    let messageUUID = NSUUID().UUIDString
    let conversationUUID: NSUUID = NSUUID()

2。扩展Message类:

class OutboundMessage: Message
class InboundMessage: Message

3。创建一个Message 数组:

var messages: [Message] = inboundMessages as [Message] + outboundMessages as [Message]

4.通过timeAndDateMessageReceived订购:

messages.sort( $0.timeAndDateMessageReceived.compare($1. timeAndDateMessageReceived) == NSComparisonResult.OrderedAscending )

【讨论】:

以上是关于按接收日期的顺序显示两个自定义对象数组的主要内容,如果未能解决你的问题,请参考以下文章

Android排序自定义对象数组

将自定义对象的 NSArray 转换为按字母顺序划分的带有索引的 UITableView?

Vue自定义组件Props中接收数组或对象

自定义指令

Wordpress 在自定义帖子类型存档页面上按日期排序

@RequestBody接收Json参数 用自定义注解对Vo对象中Date类型日期格式校验