按接收日期的顺序显示两个自定义对象数组
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 )
【讨论】:
以上是关于按接收日期的顺序显示两个自定义对象数组的主要内容,如果未能解决你的问题,请参考以下文章