我有这样的数据:
private func CreateChatRoom(creatorID: String, creatorName: String ,contactID: String, contactName: String)
{
let infoForCreator = ["userName": contactName, "newMessage" : String(0)]
let infoForContact = ["userName": creatorName, "newMessage" : String(0)]
let childUpdates = ["Messages/\(creatorID)/\(contactID)/": infoForCreator,
"Messages/\(contactID)/\(creatorID)/": infoForContact,
"ChatRoomsLite/\(creatorID)/\(contactID)/": infoForCreator,
"ChatRoomsLite/\(contactID)/\(creatorID)/": infoForContact
]
Constants.refs.databaseRoot.updateChildValues(childUpdates)
}
我需要确定每个组运行的时间(这很简单,我已经完成)但我还想确定组的嵌套方式。理想情况下,我想要一个像这样的输出:
StartTime GroupName Process
12:00:00 Group1 Start
12:01:00 Group1 End
12:01:00 Group2 Start
12:01:00 Group3 Start
12:05:00 Group3 End
12:05:00 Group2 End
使用此代码,我已经设法接近,但我正在努力如何获得嵌套。在我的例子中,只有1个级别,但实际上可能是n级。
GroupName ParentGroup Start End DurationMinutes
Group1 root 12:00:00 12:01:00 1
Group2 root 12:01:00 12:05:00 4
Group3 Group2 12:01:00 12:05:00 4
我需要递归函数吗?
答案 0 :(得分:1)
您可以使用初始化为$ null的holder变量。然后,无论何时发生启动过程,该组的父级都是holder变量中的值,并且更改holder变量以保存该组的名称。每当发生结束过程时,持有者变量将设置为结束的组的父级值。