Я думал, что объект, возвращенный NSMutableDictionary dictionaryWithCapacity:
, будет выпущен, когда пул автоопределения в main.m будет слит. Вместо этого, когда я назначаю это члену экземпляра в -init, я нахожу, что объект длится столько же времени, сколько и -init-вызов.Срок службы [NSMutableDictionary dictionaryWithCapacity: n]
Что такое управление выпуском объекта, возвращаемого NSMutableDictionary dictionaryWithCapacity:
?
Чтобы еще больше узнать о том, что происходит здесь, я обнаружил, что когда я назначаю объект пользовательского класса, созданного конструктором удобства, члену экземпляра в init, этот экземпляр все еще «жив» в (например) touchBegan : ...
ОК, это имело бы смысл для меня, за исключением того, что объекты с авторефлексией, вызванные ими, возвращаемые моими конструкторами удобных классов, похоже, не выпускаются одинаково. – james
@james: когда вы [autorelease] их? Потому что, если вы [автореализовываете] их в то время, когда ваш пул является единственным в стеке, он входит в этот пул. (Все, что [autorelease] делает, добавляет элемент в список вещей для текущего пула верхнего стека, чтобы очистить его при сливе) –
@james: Если вы хотите знать, почему ваши методы ведут себя определенным образом, Вам нужно будет увидеть методы и, возможно, контекст, в котором они используются. – Chuck