Не удается удалить объект из NSMutableArray - PullRequest
1 голос
/ 17 сентября 2010

Я пытаюсь удалить объекты из моего NSMutableArray, но продолжаю получать ошибку bad_access.

Я использовал «removeAllObjects» и «removeObjectAtIndex», но ни один из этих способов не работает.

Если я добавляю объектыс этим массивом все в порядке.

Что я хочу сделать, это очистить свой массив перед повторным заполнением.

Я не освободил массив перед попыткой заполнения.

Спасибо за помощь.

Пока

код:

[tab_Demandes removeAllObjects];

for (NSDictionary *demandeD in demandes)
{

    NSInteger i=0;


    NSString *title = [demandeD objectForKey:@"Title"];
    NSString *desriptif = [demandeD objectForKey:@"Description"];
    NSString *Id = [demandeD objectForKey:@"Id"];
    NSString *created = [demandeD objectForKey:@"Created"];
    NSString *statut = [demandeD objectForKey:@"Statut"];
    NSString *copropriete = [demandeD objectForKey:@"Copropriete"];
    NSString *immeuble = [demandeD objectForKey:@"Immeuble"];
    NSString *lot = [demandeD objectForKey:@"Lot"];
    NSString *auteur = [demandeD objectForKey:@"Author"];
    NSString *auteurId = [demandeD objectForKey:@"IdAuthor"];
    NSString *auteurLogin = [demandeD objectForKey:@"Login"];


    Demande *dem =[[Demande alloc] init];       
    dem.demTitle=title;
    dem.demId=Id;
    dem.demCreated=created;

    NSString *descriptifDecode = [desriptif stringByReplacingPercentEscapesUsingEncoding:
                                  NSASCIIStringEncoding];       

    dem.demDescriptif=descriptifDecode;
    dem.demIdCopro=copropriete;
    dem.demIdImmeuble=immeuble;
    dem.demIdLot=lot;
    dem.demStatut=statut;
    dem.demAuteur=auteur;
    dem.demIdAuteur=auteurId;
    dem.demLoginAuteur=auteurLogin;


    //[tab_Demandes replaceObjectAtIndex:i withObject:dem];
    //i=i+1;



    [tab_Demandes addObject:dem];

    //[dem release];
}

Когда мне нужно освободить объекты, которые ядобавить на вкладку, если мне нужно удалить их позже?из-за утечек памяти.

1 Ответ

1 голос
/ 17 сентября 2010

Дело не в том, что вы освободили массив, а в том, что один (или более) объектов в массиве уже был освобожден вне массива.Попробуйте включить NSZombieEnabled, чтобы узнать, сможете ли вы выяснить, какой из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...