Имейте объект JSON со всеми цепочками и объект JSON со всеми сообщениями из определенного разговора. Те объекты JSON анализируются и помещают значения в словарь, а затем в массив. Пока все хорошо, это работает так, как ожидалось.Swift: хотите добавить Array в существующий словарь
func didReceiveConversations(result: JSON) {
var conversationsArray = [AnyObject]()
for (key: String, subJson: JSON) in result["Data"] {
var conversationDictionary = [String: AnyObject]()
conversationDictionary["DeviceOnline"] = subJson["DeviceOnline"].boolValue
conversationDictionary["Id"] = subJson["Id"].stringValue
self.conversationsArray.append(conversationDictionary)
}
}
conversationsArray заполняется следующим образом:
[{
Id = "94cc96b5-d063-41a0-ae03-6d1a868836fb";
DeviceOnline = 1;
}, {
Id = "4b321903-af6a-405d-ac4f-c0799a7f714a";
DeviceOnline = 1;
}]
Затем я создаю messagesArray, который содержит словарь со значениями:
func didReceiveResultSpecificConversation(result: JSON) {
var messagesArray = [AnyObject]()
for (key: String, subJson: JSON) in result {
var messageDictionary = [String: AnyObject]()
messageDictionary["MessageId"] = subJson["MessageId"].stringValue
messageDictionary["MessageText"] = subJson["MessageText"].stringValue
messagesArray.append(messageDictionary)
}
// I guess here comes the code to add the messages to the conversationsArray
// in the Dictionary under a key: "Messages" for example so I tried this:
for conversation in self.conversationsArray {
if conversation["Id"] as! String == messagesArray[0]["ConversationId"] as! String {
conversation["Messages"] = messagesArray as [String: AnyObject]
}
}
// This gives me: Cannot assign a value of type '[String: AnyObject]' to
// a value of type 'AnyObject?!'
messagesArray.removeAll(keepCapacity: false)
}
Я думал, что в настоящее время добавления messagesArray к conversationsArray (создав новый ключ: «Сообщения» и заполнение значения messageArray) было довольно прямолинейным, но я не могу заставить его работать. Я пробовал в цикле, проходящем через цепочку, но я продолжаю получать ошибки с типами и т. Д.
Конечный результат conversationsArray должно быть что-то вроде этого:
[{
Id = "94cc96b5-d063-41a0-ae03-6d1a868836fb";
DeviceOnline = 1;
Messages [{
MessageId = "1"
MessageText = "Foo"
},{
MessageId = "2"
MessageText = "Bar"
}]
}, {
Id = "4b321903-af6a-405d-ac4f-c0799a7f714a";
DeviceOnline = 1;
Messages [{
MessageId = "1"
MessageText = "Hello"
},{
MessageId = "2"
MessageText = "World"
}]
}]
Может кто-то мне точку в правильном направлении, потому что я должен быть отсутствующий что-то очень простое здесь. Благодаря!
вы можете поделиться ссылкой вашего кода? поэтому я могу попробовать для решения – Bhupesh
Извините, что не можете поделиться проектом, так как части находятся под NDA. Я думаю, что проблема связана с «для разговора в self.conversationsArray». Должно быть довольно близко, я думаю .. – Hugo
Вы не можете поделиться демонстрацией? со статическим ответом – Bhupesh