Objective C селектор управления памятью (это утечка памяти)? - PullRequest
1 голос
/ 23 мая 2010
- (IBAction) someButtonCall {

        if(!someCondition) {
            someButtonCallBack = @selector(someButtonCall);
            [self presentModalViewController:someController animated:YES]; 
        } else
        ...
}

//Called from someController
- (void) someControllerFinished:(BOOL) ok {
   [self dismissModalViewControllerAnimated:YES];
   if(ok) [self performSelector:someButtonCallBack];
   else ...
}

Мне интересно, продолжает ли пользователь входить в предложение! SomeCondition, если селектор просочился, назначая новый селектор каждый раз (приведенный выше код является гипотетическим, а не тем, что я делаю).

Любая помощь приветствуется.

Спасибо, Джеймс Джонс

Ответы [ 3 ]

3 голосов
/ 23 мая 2010

Нет, это ничего не пропускает - вам не принадлежат значения SEL, возвращаемые @selector() и sel_registerName(), среда выполнения Objective C делает.

0 голосов
/ 23 мая 2010

Этот пример не пропускает память.@selector() оценивается во время компиляции.Вы можете пропустить переменную SEL, но не сам селектор.

0 голосов
/ 23 мая 2010

Тип SEL - это просто строка C, поэтому у вас не будет утечек памяти при повторных назначениях.

...