2015-06-27 2 views
0

все! Я использую Xcode 6.2 сейчас для разработки цели-c, когда я пытаюсь использовать «Инструменты» для обнаружения проблем с памятью, он просто не работает, поскольку я видел книги или блоги. Я использую удар кода для тестирования (основная функция опущен, используя настройки параметров xcode &).Устройства обнаружения утечки памяти в Xcode 6.2

for(int i=0; i<2; i++) 
{ 
    KSTestObj *obj0 = [[KSTestObj alloc] init]; 
    KSTestObj *obj1 = [[KSTestObj alloc] init]; 
    obj0.obj = obj1; 
    obj1.obj = obj0; 
} 
sleep(100); 

и класс KSTestObj просто имеет прообраз NSObject. Вот странное явление. Когда я установил i < 1, «Инструменты» ничего не фиксируют, и когда i < 2 (или больше), он может обнаружить проблему с памятью утечками! НО количество просочившихся объектов - 2 (или 2 * раз-2)! Это ODD! Кто-нибудь знает, что происходит? Я сделал какие-то ошибки? ТКС! вот изображение & log: i < 2, и «Инструменты» обнаруживают, что 2 объекта просочились.

2015-06-27 14:33:19.108 ObjCPro_Test[50820:603] init success! 0x7ff968700c10 
2015-06-27 14:33:19.109 ObjCPro_Test[50820:603] init success! 0x7ff968700c20 
2015-06-27 14:33:19.109 ObjCPro_Test[50820:603] init success! 0x7ff9687003a0 
2015-06-27 14:33:19.110 ObjCPro_Test[50820:603] init success! 0x7ff9687003b0 
<End of Run> 

enter image description here

< я 1, "Инструменты" не показывает просочились объекты!

2015-06-27 14:30:17.737 ObjCPro_Test[50789:603] init success! 0x7f7ff1e00830 
2015-06-27 14:30:17.738 ObjCPro_Test[50789:603] init success! 0x7f7ff1e004e0 
<End of Run> 

enter image description here

ответ

0

Если obj0 содержит сильную ссылку на obj1 и obj1 также содержит сильную ссылку на obj0, вы создали сохранить цикл, в котором ни один объект может быть освобожден.

Это приведет к утечке памяти для каждого объекта для каждой итерации по петле. (Именно поэтому это 2 x количество итераций - 1.)

Чтобы решить эту проблему, вы можете установить свойство obj в состояние слабого, поэтому каждый объект может выйти из существования по завершении итерации.

Смежные вопросы