2010-08-13 3 views
1

Если я буду продолжать вызывать этот метод снова и снова и снова:Подозреваемый утечки памяти на iPhone

-(IBAction)pressedNextPage { 

    NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults]; 
    NSInteger newUser = [profiles integerForKey:@"activeuser"]; 

    if(newUser == 1) { 
     [profiles setObject:name.text forKey:@"name1"]; 
     [profiles setObject:social.text forKey:@"social1"]; 
    } else if(newUser == 2) { 
     [profiles setObject:name.text forKey:@"name2"]; 
     [profiles setObject:social.text forKey:@"social2"]; 
    } else if(newUser == 3) { 
     [profiles setObject:name.text forKey:@"name3"]; 
     [profiles setObject:social.text forKey:@"social3"]; 
    } 

    [profiles synchronize]; 

    DA31P2ViewController *da31p2Control = [[DA31P2ViewController alloc]initWithNibName:@"DA31P2ViewController" bundle:nil]; 
    [self.navigationController pushViewController:da31p2Control animated:YES]; 
    da31p2Control.release; 

} 

... это будет в конечном итоге крах. Я подозреваю, что утечка памяти где-то, но, похоже, не может ее найти. Может ли он быть здесь или, возможно, на вид, который он загружает? Мне не нужно выпускать профили, потому что я не выделяю их, не так ли?

+0

Если вы продолжаете называть его снова и снова, вы снова и снова нажимаете контроллер вида на стек навигационного контроллера. Возможно, у вас не хватает памяти или максимальное количество контроллеров просмотра? –

ответ

0

Хмм, я не знал, что вы могли бы позвонить release, просто сделав object.release, вы уверены, что можете это сделать? Если нет, то это объяснит сбой. Каждый раз, когда вы его вызываете, контроллер просмотра не освобождается, поэтому они просто накапливаются, происходит утечка памяти. Попробуйте изменить его на [da31p2Control release].

+0

Вы можете это сделать, но никогда не должны этого делать. Я не думаю, что это вызывает утечку памяти. – eliego

+0

Я попытался изменить все на синтаксис скобки, но это ничего не исправить. – startuprob

Смежные вопросы