когда выпустить экземпляр NSDictionary и все его значения? - PullRequest
1 голос
/ 24 ноября 2011

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

NSDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:N];
for (int index = 0; index < N; index++) {
    MyObject *obj = [[MyObject alloc] init];
    ...
    [dict setObject:obj forKey:index];
}

Итак, вопросы: 1. Должны ли экземпляры MyObject создаваться как авто-релиз?2. как только мне нужно выпустить экземпляр NSDictionary, я должен также выпустить все экземпляры MyObject (если они не созданы как autorelease)

1 Ответ

2 голосов
/ 24 ноября 2011

Вы можете явно освобождать экземпляры MyObject после вызова setObject, поскольку они будут сохранены в этой точке. Вы можете автоматически выпускать экземпляры MyObject, но явное освобождение будет более эффективным. Выпуск экземпляра NSDictionary освободит экземпляры MyObject.

...