В моей игре для iOS (скомпилированной с ARC) есть случай, когда объект (ivar, NSMutableDictionary) удаляется в сборке выпуска, хотя это явно не должно быть. В сборке отладки все нормально.
Я пытаюсь найти лучший способ отладить это. Если я ставлю какие-либо проверки на объект, он зависает как следует. Я знаю, что объект используется, потому что приложение падает, поэтому к объектам обращаются.
Я использовал объекты Zombie, чтобы сказать, что объект удаляется, но я не знаю, где и когда это происходит.
Есть ли способ узнать, когда компилятор считает, что эти объекты больше не нужны, или когда он на самом деле удаляется (что может ничего не сказать, если он находится в пуле автоматического выпуска).
У кого-нибудь есть хороший совет, чтобы отследить это? Я не хочу просто называть это ошибкой компилятора, но я не могу понять, как компилятор мог думать, что на этот объект больше нет ссылок, так как он упоминается повсюду. Объект, который содержит ivar, - это место, где выполняется весь мой код, так что он явно все еще существует (и если бы его не было, все происходило бы намного хуже).
А пока я просто оставлю одну строку кода отладки, из-за которой объект не будет удален, но я ненавижу поставлять приложение с этим решением.
Спасибо.