2010-08-05 3 views
0

Вот мой код:ObjC проблема памяти в массивах

 NSLog(@"rc: %d", [_pagesButton retainCount]); 
     NSMutableArray *anArray = [[NSMutableArray alloc] initWithArray:_toolbar.items]; 
     NSLog(@"rc: %d", [_pagesButton retainCount]); 
     [anArray removeObjectAtIndex:2]; 
     NSLog(@"rc: %d", [_pagesButton retainCount]); 
     [_toolbar setItems:anArray animated:YES]; 
     NSLog(@"rc: %d", [_pagesButton retainCount]); 
     [anArray release]; 
     NSLog(@"rc: %d", [_pagesButton retainCount]); 

и вот результат:
гс: 2
гс: 3
гс: 2
гс: 3
гс: 3

Первый rc равен 2, потому что _pagesButton сохранил эту переменную и массив toolbar.items. После того, как я создаю переменную anArray, счетчик удержания равен 3, затем я удаляю _pagesButton из переменной anArray, поэтому значение удержания переходит к 2. Затем я устанавливаю _toolbar.items, а значение count count равно 3. Но почему ??? И когда я освобождаю переменную anArray, остатки остаются 3. Почему? Пожалуйста, помогите мне немного.

ответ

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