Reputation:
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
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