В swift 4.2 я сталкиваюсь с проблемой при обработке двух объектов массива. Когда я удаляю объекты из другого массива, значения удаляются из всех объектов.
1) Ниже мое закрытие
func GetChatBotData(completion: @escaping (_ result: ChatV_1_Model) -> Void) {
var ChatBotData : ChatV_1_Model! = nil
ApiHelper.sharedSession.postLoacl("http://localhost:3000/posts/", postData: NSDictionary(), methodtype: Constant.API.httpGet) { (isError, data, errorDescription) in
DispatchQueue.main.async(execute: {
if isError == false {
ChatBotData = ChatV_1_Model.init(fromDictionary: data!)
completion(ChatBotData)
}
else {
//completion("Error to get result" as AnyObject)
completion(ChatBotData)
}
})
}
}
Теперь В моем контроллере
var PKComponents = [Chatbot_V_1_DataModel]()
var ChatMessages = [Chatbot_V_1_DataModel]()
override func viewDidLoad() {
super.viewDidLoad()
GetChatBotData() {(result: ChatbotV_1_Model!) in
print("Call Plans: \(result!)")
self.PKComponents = result.data
self.ChatMessages = result.data
self.ChatMessages[0].component.removeAll()
}
В Viewdidload я удаляю объекты из массива self.ChatMessages, но он также удаляет из всех объектов, таких как, PKComponents и result.data.
Примечание. Я видел, что ссылка на результат такая же, как у PKComponents и Chatmessages.
Как решить эту проблему?