user141302
user141302

Reputation:

crash happens when NSMutableArray is returned?

I have coded like that(that function will be called again and again), but the returned object gives "BAD ACCESS", the NSLog prints correct string, but toReturn sometimes(i called again and again) gives crashes..any help to alter this code,If i remove the "autorelease" method,it worsks fine

 - (NSMutableArray *)getAll:(NSString *)type
{
    NSLog(@"Type: %@", type);
    NSMutableArray *toReturn = [[[NSMutableArray alloc] initWithCapacity:0] autorelease];

    rs = [db executeQuery:Query1];

    while ([rs next]) {
        [toReturn addObject:[rs stringForColumn:@"Name"]];
        NSLog(@"name: %@", [rs stringForColumn:@"Name"]);
    }

    [rs close];

    return toReturn;
}

Upvotes: 1

Views: 128

Answers (1)

hanno
hanno

Reputation: 6513

You need to make sure that your string is not deallocated in the meantime. Try changing

    [toReturn addObject:[rs stringForColumn:@"Name"]];

to

    [toReturn addObject:[[rs stringForColumn:@"Name"] copy]];

Upvotes: 1

Related Questions