Недавно чинил чей-то код. Был большой класс, который не сдавался. Вам нужно было выпустить 5 или 6 релизов, чтобы освободить его.
Я внимательно просмотрел большой класс и в конце концов нашел различные вещи, которые нужно было выпустить.
Это заставило меня задуматься: просто должен быть какой-то действительно простой способ «найти» все удержания на объекте .. я прав?
Итак, есть ли простой способ «найти все удержания» на объекте? Есть ли в XCode или инструментах кнопка, о которой все знают?
Что вы делаете, если не можете найти такую тайну?
Итак, во вселенной iOS, если кто-нибудь знает » Показать, откуда поступили все остатки на этом объекте " кнопка - спасибо!
PS Обратите внимание, что утечки нет, и этот вопрос совершенно не связан с утечками. Объект просто «идеально правильно» не выпустит.
Позже ..
Фабио предоставил поразительное решение этой проблемы. В девяти словах вот оно:
-(id)retain
{
NSLog(@"%@", [NSThread callStackSymbols]);
return ([super retain]);
}
Это удивительно полезно во многих ситуациях и ведет ко многим другим полезным вещам. Ты, наверное, навсегда сэкономил мне две человеко-недели работы в год, Фабио. Спасибо!
Кстати, если вы только начинаете разбираться в этом и боретесь с выводом, я заметил, что обычно будет много фрагментов с "UINib instantiateWithOwner:". Похоже, что они появятся первыми, затем последуют значительные фрагменты.