Создание постоянного словарного объекта

Я хотел бы сделать что-то вроде того, что делается в этом посте:Константы в Objective-C

Тем не менее, я хотел бы построить NSDictionary.

если я сделаю что-то вроде:

constants.h

extern NSArray *const mFooKeys;
extern NSArray *const mFooObjects;
extern NSDictionary *const mFooDictionary;

constants.m

NSArray *const mFooKeys = [[NSArray alloc] initWithObjects: 
                                   @"Foo", @"Bar", @"Baz", nil];
NSArray *const mFooObjects = [[NSArray alloc] initWithObjects: 
                                   @"1", @"2", @"3", nil];
NSDictionary *const mFooDictionary = [[NSDictionary alloc] dictionaryWithObjects:mFooObjects 
                                                                         forKeys:mFooKeys]; 

мне выпустить в dealloc и все нормально, или есть что-то еще? это более осторожный вопрос, чем вопрос «что-то не так», но я чувствую, что действительно могу все испортить, не осознавая этого.

Ответы на вопрос(2)

Решение Вопроса

NSDictionary основанный на других основных типах данных, вам нужно либо включить его в класс, который будет использовать константу, либо создатьСинглтон класс и хранитьNSDictionary там. Есть только некоторые типы классов, которые не будут работать в реализации, на которую вы смотрите; код констант, который вы ищете, должен был бы использоваться как объект, чтобы работать правильно, но я думаю, что это побеждает цель. Мне непонятно, что является определяющим фактором для того, что вы можете и не можете делать в реализации простых констант, но я столкнулся с той же проблемой, и шаблон проектирования Singleton отлично сработал для меня. (В любом случае, вы должныdealloc соответственно, даже если они будут существовать на протяжении всей жизни приложения.)

так что они представляют собой отдельные объекты, которые будут работать в течение всего жизненного цикла вашего приложения. Не нужно выпускать, так как они нужны, пока приложение не будет закрыто.

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

Ваш ответ на вопрос