NSDictionary - Не копировать значения? - PullRequest
0 голосов
/ 25 октября 2010

Я пытаюсь управлять несколькими анимациями в моей сцене, используя следующий метод:

  1. В цикле создайте анимированный UIImageView, установите на остановлено метод. Кроме того, сохраните этот UIImageView в NSMutableDictionary. Идентификатор анимации совпадает с ключом в словаре.

  2. Когда эта анимация остановлена, получите идентификатор анимации. Используйте [animations objectForKey: animationID], чтобы получить объект изображения. Я удаляю изображение из суперпредставления и выпускаю его. Я также удаляю объект из словаря с помощью ключа.

  3. Создайте еще один анимированный объект, промойте, повторите.

Проблема в том, что когда я иду получить объект, основанный на ключе, возвращается NULL. Я предполагаю, что это связано с тем, как работает словарь - он копирует значения, а не сохраняет их. Поскольку он скопирован, я не могу удалить этот объект.

Как я могу заставить NSDictionary НЕ копировать эти объекты (поэтому у меня есть оригинал) или как я освобождаю эти анимированные объекты и удаляю их из суперпредставления после завершения анимации?

1 Ответ

1 голос
/ 25 октября 2010

NSDictionary не копирует объекты (только ключи). Единственная причина, по которой вы получите NULL, заключается в том, что вы ввели неправильный ключ или объект уже удален.

Это не на 100% ясно из вашего описания, но вы, кажется, предлагаете, чтобы вы "2. ... удалили объект из словаря ...", а затем "... получили объект .. ". Если это два отдельных вида деятельности, то вы наверняка не найдете объект там во время второго посещения.

...