2009-10-29 21 views

Odpowiedz

27

- [NSMutableArray removeAllObjects] nie działa dla Ciebie?

+0

To robi teraz ... Dzięki! – rson

+0

Głupio wydaje się, że faktycznie wypuszcza obiekt ... Jaki to ma sens? W każdym razie obejść go przez umieszczenie [NSMutableArray retain] tuż przed removeAllObjects. – jowie

+1

Joe - w tym przypadku twój kod jest uszkodzony. Zobacz http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/Articles/mmObjectOwnership.html –

5

removeAllObjects

3

removeAllObjects jeśli zakładając przez 'reset', to znaczy po prostu chcesz opróżnić tablicę.

1

Jeśli próbujesz zrobić to, co myślę, że próbujesz zrobić, to znaczy zachować tablicę pustą, ale jej nie zwolnić, lub przynajmniej udostępnić ją następnym razem, gdy jest to potrzebne, najpierw musisz ustawić zmienna lub właściwość w obrębie swojej klasy dla tej zmiennej:

NSMutableArray *mutableArray; 

Następny dodać ten kod przed pozycji, w której trzeba będzie pustą tablicę:

if (!mutableArray) { 
       mutableArray = [[NSMutableArray alloc] init]; 
     } 

teraz można bezpiecznie wywołać

[mutableArray removeAllObjects]; 

bez obawy, że tablica stanie się niedostępna po opróżnieniu.