Я получил это сообщение об ошибке:
message [CFString release] sent to deallocated object at 0x........
Как я могу узнать, какая строка вызвала эту проблему? Могу ли я выяснить, какой CFString
использует отладчик?
Я получил это сообщение об ошибке:
message [CFString release] sent to deallocated object at 0x........
Как я могу узнать, какая строка вызвала эту проблему? Могу ли я выяснить, какой CFString
использует отладчик?
Если вы используете XCode 4, используйте инструмент Zombie (сборка и профиль). Когда появляется это сообщение, вы можете нажать стрелку, чтобы получить список всех мест, где строка была сохранена и освобождена.
См. http://www.cocoadev.com/index.pl?NSZombieEnabled для ввода точку останова и вернуться к стеку, чтобы найти оператор выпуска, где это произошло.
Во-первых, вы можете попробовать поискать в коде функции alloc/dealloc и подсчитать их.
Это было так: "count alloc == count Dealloc".
Второй шаг: смотрите. для некоторой конструкции:
NSString *myString = [NSString stringWith...]; // Auto alloc/init with content
[myString release]; // Release before use
NSLog(@"%@", myString); // Use after release
Или попробуйте отладить с помощью NSLog(%"retain count :%d", [myString retainCount]);