Я получаю утечки, если я не помещу это в dealloc.Я получаю крушение EXC_BAD_ACCESS
Если я делаю.Я не вижу ничего плохого в этом коде.Плохой доступ указан на [events release]
.Я сделал ошибку в приведенном ниже коде или Instruments просто смеется над моими расходами?
events
- это NSArray
@interface EventsViewController : UITableViewController
{
@private
NSArray *events;
}
- (void)viewDidLoad
{
events = [[self getEvents] retain];
}
- (void)dealloc
{
[events release];
[super dealloc];
}
- (NSArray*)getEvents
{
NSMutableArray *response = [[[NSMutableArray alloc] init] autorelease];
//Some sql
while(sqlite3_step(statement) == SQLITE_ROW)
{
Event *event = [[[Event alloc] init] autorelease];
event.subject = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];
[response addObject:event];
}
return response;
}
Обновление Многие из вас говорят, что код в порядке, что является плюсом.Я не манипулирую events
в другом месте - я удалил любой код, который пытается выявить сбой.Возможно, в родительском представлении?
Это событие нажатия, которое выдвигает EventsViewController: - (void) eventsClick: (id) sender
{
EventsViewController *eventsViewController = [[EventsViewController alloc] initWithNibName:@"EventsViewController" bundle:nil];
eventsViewController.anywhereConnection = anywhereConnection;
eventsViewController.contact = contact;
[[self navigationController] pushViewController:eventsViewController animated:YES];
[eventsViewController release];
}
Сбой действительно происходит, когда я возвращаюсьв родительском представлении.(Я думаю, что это считается родителем в этом сценарии).Но, возможно, [eventsViewController release]
просто вызывает dealloc
в EventViewController
.