У меня есть NSMutableSet спрайтов, каждый из которых объявленную таким образом:Что происходит при удалении unretained объектов из NSMutableSet
SpriteEntity * newProjectile = [CCSprite spriteWithFile:@"tiles.png" rect:CGRectMake(48,0,16,16)];
Теперь они хранятся в NSMutableSet, который сохраняется (создается вызовом Alloc и инициализации). Когда я вызываю removeObject на одном из SpriteEntities, что с ним происходит?
Я бы предположил, что сбор мусора получает их, но я хотел бы знать наверняка.
Благодаря
Почему вы не испытываете это? Создайте NSMutableSet, добавьте три объекта SpriteEntity, сохраните один, а не другой, и сохраните его по умолчанию, а затем удалите их по одному, используя NSLog между ними. – hd1
Итак, вы должны быть очень понятными здесь, если вы используете сбор мусора (GC), ручной подсчет ссылок (MRC) или автоматический подсчет ссылок (ARC). GC не использует удержание и отключение таким же образом. Механизм GC будет периодически запускаться (если не вызывается) для очистки вещей, и не обязательно в тех же циклах, что и подсчет ссылок и dealloc. – uchuugaka