TableView с использованием двух параллельных массивов в качестве источника - PullRequest
0 голосов
/ 23 августа 2011

Этот вопрос относится к наилучшей практике при отображении табличного представления, поэтому, если есть лучший способ решить эту проблему, чем мое предлагаемое решение (в вопросе), пожалуйста, скажите мне.

У меня есть таблицапредставление, которое имеет текст, который содержится в NSArray of Dictionaries в качестве источника для каждого текста ячейки.Представление таблицы также должно отображать UIImage в ячейке таблицы.В каждой ячейке будет текст, но некоторые ячейки могут не содержать UIImage.

Каков наилучший подход к этой проблеме?

В настоящее время, если для текста доступно UIImage, оно устанавливается какключ в словаре, который также содержит текст и отображается.С точки зрения управления памятью это плохой подход?

В качестве альтернативы, имеет ли смысл использовать два NSArrays, которые соответствуют друг другу (например, они оба имеют одинаковое количество элементов и объект с индексом 1первый массив будет соответствовать объекту по индексу 1 второго массива) и просто сохранить NSNull или что-то подобное во втором массиве (image), который не всегда может иметь объект, который должен отображаться?

Чтоэто все, спасибо за любой вклад!

1 Ответ

1 голос
/ 23 августа 2011

Любой метод работает, хотя NSArray NSDictionarys, как правило, будет немного более понятным для других, читающих ваш код (или для себя несколько месяцев подряд). Еще лучше может быть массив пользовательских объектов подкласса NSObject для явного хранения текста и изображения, хотя экономия памяти, вероятно, незначительна.

Что касается хранения UIImages, проблемы с памятью одинаковы, находятся ли они в словаре или в отдельном массиве. Если вы создаете их с помощью imageWithContentsOfFile: или initWithContentsOfFile:, вы должны быть достаточно хороши, поскольку UIImage должен автоматически освобождать данные изображения, когда это необходимо (и данные изображения не используются в противном случае), а затем перезагружать их из файла, когда он снова нужен Если вы создаете ваши UIImages каким-либо другим способом, и они велики или особенно многочисленны, вы можете захотеть сохранить данные в файлы какого-либо вида, чтобы вы могли использовать imageWithContentsOfFile:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...