У меня есть NSArray, хранящий NSDictionaries.Каждый словарь имеет два ключа;имя и подмассив, содержащий 'items'.
Я хочу проверить, остается ли один из этих словарей в NSArray после определенной операции.Перед операцией я сохраняю указатель orginalDictionary на интересующий меня словарь. Затем я выполняю свою операцию (которая удаляет один из «элементов» из подмассива в этом словаре).После операции я подумал, что смогу проверить, существует ли сам Словарь (не удаленный элемент), используя
if ([arrayOfDictionaries containsObject:originalDictionary]) {...
, но он не работает, как ожидалось.Даже если массив все еще содержит исходный словарь (хотя с измененным подмассивом внутри него), вызов возвращает, что массив больше не содержит этот словарь.
Может ли это быть правдой?Если элемент в массиве изменится, не будет ли в функции selectedObject тот же объект?Или здесь что-то еще происходит?
РЕДАКТИРОВАТЬ Я начинаю думать, что причина, по которой мой массив заполняется, является основной причиной.Массив словарей создается из одного или нескольких других массивов, в зависимости от некоторых настроек. Эти массивы сами заполняются с помощью запроса на выборку, который создает словари на основе выбранных объектов.Таким образом, когда происходит изменение в некоторых данных (или, возможно, даже если выборка запускается простым запросом результата возврата массива), это будет перестроить возвращаемый массив, и словари внутри будут новыми элементами.Звучит ли это правильно?Если это так, я полагаю, у меня нет другого выбора, кроме как сохранить уникальный ключ, управляемый самостоятельно?