В Какао очень распространено копирование NSString
параметров вместо сохранения. Это потому, что вы могли бы так же легко дать словарю экземпляр NSMutableString
. Поскольку значение строки может измениться, NSDictionary
делает копию.
Но, независимо от того, как на самом деле работает * 1006, вам не нужно беспокоиться о том, нужно ли сохранять character
. После того, как вы передали его в NSMutableDictionary
в качестве параметра, на самом деле задача этого класса - решить, как хранить данные, если только в документации не указано, что сохранение объектов - ваша ответственность.
Я бы тоже не слишком беспокоился о retainCount
любого объекта. Следование количеству объектов, находящихся слишком близко, может привести вас к кроличьим отверстиям, которые заставляют вас вращать колеса.
Наконец, я действительно не думаю, что вам нужно создавать свой собственный пул авто-релизов здесь. Если вы не знаете с абсолютной уверенностью, что theString
будет очень долгим, или вы уже наблюдали высокое использование памяти в приборах, добавление пула автоматического выпуска является ненужной оптимизацией.