Pau Gonzàlez
Pau Gonzàlez

Reputation: 13

EXC_BAD_ACCESS in a simple code

I want to construct a string with an array of objects

for (int n=0; n<[friends count]; n++) {
    User* friend = [friends objectAtIndex:n];
    if (n>=[friends count]-1) {
        NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"}", [friend uid]];
        NSString* sf2 = [[NSString alloc]init];
        sf2= [sf stringByAppendingString:param];
        [sf release];
        sf = [[NSString alloc]initWithString:sf2];
        [sf2 release];
        [param release];
    }else{
        NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"},", [friend uid]];

        NSString* sf2 = [[NSString alloc]init];
        sf2= [sf stringByAppendingString:param];
        [sf release];
        sf = [[NSString alloc]initWithString:sf2];
        [sf2 release];
        [param release];
    }

}

I want to know what I'm doing wrong. Thanks in advance!!

Upvotes: 1

Views: 90

Answers (2)

Nuzhat Zari
Nuzhat Zari

Reputation: 3408

param is autoreleased object so you should not release it.

Edit: //initialize sf here.

for (int n=0; n<[friends count]; n++) {
    User* friend = [friends objectAtIndex:n];
    if (n>=[friends count]-1) {
        NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"}", [friend uid]];
        sf = [sf stringByAppendingString:param];
    }else{
        NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"},", [friend uid]];

        sf = [sf stringByAppendingString:param];
    }

}

Upvotes: 1

Abhishek
Abhishek

Reputation: 2253

use this code.... comment [sf release] and [param release];

for (int n=0; n<[friends count]; n++) {
User* friend = [friends objectAtIndex:n];
if (n>=[friends count]-1) {
    NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"}", [friend uid]];
    NSString* sf2 = [[NSString alloc]init];
    sf2= [sf stringByAppendingString:param];
    //[sf release];
    sf = [[NSString alloc]initWithString:sf2];
    [sf2 release];
    //[param release];
}else{
    NSString* param = [NSString stringWithFormat:@"{\"target_id\":\"dummy(%d)\"},", [friend uid]];

    NSString* sf2 = [[NSString alloc]init];
    sf2= [sf stringByAppendingString:param];
    //[sf release];
    sf = [[NSString alloc]initWithString:sf2];
    [sf2 release];
   //[param release];
}

}

may this will help you

Upvotes: 0

Related Questions