Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
#1

Memory leak

06.04.2013, 18:40. Просмотров 789. Ответов 5
Метки нет (Все метки)

Всем добрый день.
Помогите пожалуйста разобраться, проверяю приложение в instruments в leaks и он показывает утечку, но я не пойму где именно и что течет.
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSInteger row=[indexPath row];
    isSave=YES;
    if(row==3){
        ChooseCategoryView *chooseCategoryView=[[[ChooseCategoryView alloc]init]autorelease];
        chooseCategoryView.numOfCategory=savedNumberOfCategory;
        [self.navigationController pushViewController:chooseCategoryView animated:YES];
        return indexPath;
    }else if(row==2){
        TimePicker *timePicker=[[[TimePicker alloc]initWithNibName:@"TimePicker" bundle:nil]autorelease];
        timePicker.time=self.task.date;
        [self.navigationController pushViewController:timePicker animated:YES];  //<<<------вот тут все хорошо 
        return indexPath;
    } else if(row==1){
        DatePicker *datePicker=[[[DatePicker alloc]initWithNibName:@"DatePicker" bundle:nil] autorelease];
        datePicker.date=self.task.date;
        [self.navigationController pushViewController:datePicker animated:YES];//   <<<------ вот тут intruments показывает утечку
        return indexPath;
    } else if (row==0){
        return nil;
    } else {
        return nil;
    }
}
Хотя в этом же методе вот тут все нормально:
Objective-C
1
2
3
4
TimePicker *timePicker=[[[TimePicker alloc]initWithNibName:@"TimePicker" bundle:nil]autorelease];
        timePicker.time=self.task.date;
        [self.navigationController pushViewController:timePicker animated:YES];  //<<<------вот тут все хорошо instruments ничего не показывает
        return indexPath;
Time picker и date picker почти одинаковые в реализации классы
Date picker мой класс, вот его объявление:
Objective-C
1
2
3
4
5
6
7
8
9
10
@interface DatePicker : UIViewController
 
@property(nonatomic,retain)IBOutlet UIDatePicker *picker;
@property(nonatomic,retain)IBOutlet UILabel *label;
 
@property(nonatomic,retain)NSDate *date;
 
-(IBAction)changeDate;
 
@end
В реализации класса date picker в dealloc все освобождаю:
Objective-C
1
2
3
4
5
6
-(void)dealloc{
    [_date release];
    [_label release];
    [_picker release];
    [super dealloc];
}
Подскажите пожалуйста почему возникает утечка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 18:40
Ответы с готовыми решениями:

Утечка памяти - Received memory warning?
Всем привет! Подскажите как можно решить проблему и где я делаю ошибки? ...

Memory management. Контейнеры STL
Здравствуйте. Подскажите пожалуйста кто работал с STL в Objective C. Следят ли...

Memory leak
Здравствуйте! Люди, очень интересная проблема возникла у моего друга. Программа...

Memory leak
Здравствуйте, коллеги. В программе наблюдается утечка памяти. Наблюдается...

Memory leak
Всем добрый день! Господа знатоки, подскажите пожалуйста, столкнулся со...

5
dollar8
13 / 13 / 0
Регистрация: 25.09.2011
Сообщений: 84
09.04.2013, 11:24 #2
может случайно написал
@syntesize date;
или
@syntesize label;
или
@syntesize picker;

хотя хКод написал бы ошибку в деалоке.

Да и странно, что личется во время пуша, а не попа (тогда вообще походу не там смотрим)
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
09.04.2013, 11:36  [ТС] #3
Не @synthesize я не писал. Вот в том то и дело, что не понятно: почему и где течет. На других форумах читал у людей утечки в том же месте только если нету release или autorelease, так нет же у меня все есть и все равно течет, значит утечка где то в другом месте ток я не пойму где. Instruments пишет что утечка в 96 байт, была б побольше я ее в allocation попытался бы отследить а так...
Оно конечно и с ней жить можно, но как то интересно в чем проблема.
0
dollar8
13 / 13 / 0
Регистрация: 25.09.2011
Сообщений: 84
16.04.2013, 00:48 #4
а может попробуйте закомментить
Objective-C
1
        //datePicker.date=self.task.date;
ну вдруг у вас сеттер не правильно переопределен.
Да и если после коммента все равно личется надо дальше смотреть жизненный цикл DatePicker
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
16.04.2013, 22:32  [ТС] #5
закомментировал все равно утечка есть(
0
dollar8
13 / 13 / 0
Регистрация: 25.09.2011
Сообщений: 84
28.04.2013, 23:58 #6
Цитата Сообщение от Xavier Посмотреть сообщение
закомментировал все равно утечка есть(
Извиняюсь, что отсутсвовал на форуме. мой ящик завален спамом )) поэтому так.

ну в данных ситуациях лучшим решением является комментить большой кусок кода, найти когда не личется, а потом по тихоньку раскомменчивать
0
28.04.2013, 23:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 23:58

Memory Leak in IE 5.0
Утечка памяти до беспамятства системы :) Замечали такое за ИЕ? Может знает кто...

memory leak on WM_PAINT
сразу подробный упрощенный пример. на данной машине использую VC6++. Windows...

Memory leak in the SharedPtr C++98
Стандарт С++98. Задача: реализовать свой SharedPtr (не шаблонный). Всю ночь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru