Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在不同长度的数组中循环_Arrays_Swift_Sorting_Dictionary_Pfobject - Fatal编程技术网

Arrays 在不同长度的数组中循环

Arrays 在不同长度的数组中循环,arrays,swift,sorting,dictionary,pfobject,Arrays,Swift,Sorting,Dictionary,Pfobject,我正在制作一个代码,在表视图中显示所有消息。往返于(&F)。我遇到的问题是数组的长度不同,当比较它们时,循环会在最短的时间停止,而不是继续 我所做的是把两个不同的数组排序成一个更大的数组,这个数组是一个组合,但是根据时间对它们进行排序 我使用Swift&我还使用Parse来查询信息 我承认我不是最擅长阵列的。这是否是一个好时机,可以建立发送消息和接收消息的字典,然后循环浏览 for var i = 0; i <= self.messagesPFObjectResults.count;

我正在制作一个代码,在表视图中显示所有消息。往返于(&F)。我遇到的问题是数组的长度不同,当比较它们时,循环会在最短的时间停止,而不是继续

我所做的是把两个不同的数组排序成一个更大的数组,这个数组是一个组合,但是根据时间对它们进行排序

我使用Swift&我还使用Parse来查询信息

我承认我不是最擅长阵列的。这是否是一个好时机,可以建立发送消息和接收消息的字典,然后循环浏览

  for var i = 0; i <= self.messagesPFObjectResults.count; i++ {

     let sentMessagesInfo = sentMessagesObject![i] //This Equals 7
     let recievedMessageInfo = recievedMessagesObject![i] // this equals 8

        if sentMessagesInfo.createdAt?.timeIntervalSinceReferenceDate >= recievedMessageInfo.createdAt?.timeIntervalSinceReferenceDate {

            self.messagesPFObjectResults.append(recievedMessageInfo)
            print("message recieved at: \(recievedMessageInfo.createdAt!)")


            print(false)

          } else if sentMessagesInfo.createdAt?.timeIntervalSinceReferenceDate <= recievedMessageInfo.createdAt?.timeIntervalSinceReferenceDate {

             self.messagesPFObjectResults.append(sentMessagesInfo)

             print("message sent at: \(sentMessagesInfo.createdAt!)")

             print(true)

          }

          print(i)                            
  }
var i=0的
;i=ReceivedMessageInfo.createdAt?.timeIntervalSinceReferenceDate{
self.messagesPFObjectResults.append(receivedMessageInfo)
打印(“在以下地址收到的消息:\(receivedMessageInfo.createdAt!))
打印(假)
}否则,如果sentMessagesInfo.createdAt?.timeIntervalSinceReferenceDate此行:

self.messagesPFObjectResults.append(<someObject>)
self.messagesPFObjectResults.append()
这是有问题的。当您在for循环中时,不应该修改正在迭代的数组

相反,您可以在for循环之前定义一个空数组,并将对象附加到该数组中。完成for循环后,可以将临时数组中的对象添加到
self.messagesPFObjectResults

此行:

self.messagesPFObjectResults.append(<someObject>)
self.messagesPFObjectResults.append()
这是有问题的。当您在for循环中时,不应该修改正在迭代的数组


相反,您可以在for循环之前定义一个空数组,并将对象附加到该数组中。完成for循环后,如果创建一个Class Message并将其子类化为ReceivedMessage和SentMessage,则可以将临时数组中的对象添加到self.messagesPFObjectResults

,这样就很容易对它们进行排序并创建一个总数组

请参见此示例(如果简单,则使用整数而不是日期):

类消息{
日期:Int
初始(日期:Int){
self.date=日期
}
}
类ReceivedMessage:Message{
}
类SentMessage:Message{
}
//创建包含消息的数组
var receivedMessages:[ReceivedMessage]=[]
var SentMessage:[SentMessage]=[]
//只是创建随机对象
因为我在1…5{
receivedMessages.append(ReceivedMessage(日期:i))
}
//只是创建随机对象
对于1…3中的j{
SentMessage.append(SentMessage(日期:j))
}
//创建数组以保存所有已接收和已发送的消息
变量消息:[消息]=[]
对于receivedMessages中的receivedMessage{
messages.append(receivedMessage作为消息)
}
对于sentMessages中的sentMessage{
messages.append(sentMessage作为消息)
}
//创建包含所有已排序消息的数组
让ordenedMessages=messages.sort{
返回$0.date<$1.date
}
打印(“消息:”)
对于消息中的消息{
开关(信息){
大小写为ReceivedMessage:print(“ReceivedMessage:\(message.date)”)
大小写为SentMessage:print(“SentMessage:\(message.date)”)
默认值:中断
}
}
打印(“\n未命名邮件:”)
用于ordenedMessages中的消息{
开关(信息){
大小写为ReceivedMessage:print(“ReceivedMessage:\(message.date)”)
大小写为SentMessage:print(“SentMessage:\(message.date)”)
默认值:中断
}
}

在操场上跑步,亲自观看

如果您创建一个类消息并将其子类化为ReceivedMessage和SentMessage,那么对它们进行排序并创建一个总数组就非常容易了

请参见此示例(如果简单,则使用整数而不是日期):

类消息{
日期:Int
初始(日期:Int){
self.date=日期
}
}
类ReceivedMessage:Message{
}
类SentMessage:Message{
}
//创建包含消息的数组
var receivedMessages:[ReceivedMessage]=[]
var SentMessage:[SentMessage]=[]
//只是创建随机对象
因为我在1…5{
receivedMessages.append(ReceivedMessage(日期:i))
}
//只是创建随机对象
对于1…3中的j{
SentMessage.append(SentMessage(日期:j))
}
//创建数组以保存所有已接收和已发送的消息
变量消息:[消息]=[]
对于receivedMessages中的receivedMessage{
messages.append(receivedMessage作为消息)
}
对于sentMessages中的sentMessage{
messages.append(sentMessage作为消息)
}
//创建包含所有已排序消息的数组
让ordenedMessages=messages.sort{
返回$0.date<$1.date
}
打印(“消息:”)
对于消息中的消息{
开关(信息){
大小写为ReceivedMessage:print(“ReceivedMessage:\(message.date)”)
大小写为SentMessage:print(“SentMessage:\(message.date)”)
默认值:中断
}
}
打印(“\n未命名邮件:”)
用于ordenedMessages中的消息{
开关(信息){
大小写为ReceivedMessage:print(“ReceivedMessage:\(message.date)”)
大小写为SentMessage:print(“SentMessage:\(message.date)”)
默认值:中断
}
}
在操场上跑步,亲自观看