【问题标题】: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 非常陌生,因此我们将不胜感激。

谢谢

【问题讨论】:

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

标签: ios swift


【解决方案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 })

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多