2010-05-23 82 views
1
- (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子句。Objective C选择器内存管理(这是否泄漏内存)?

任何帮助表示赞赏。

谢谢, 詹姆斯·琼斯

+0

谢谢大家!我没有想到它,但我并不是100%确定的。 – 2010-05-23 03:44:57

回答

3

不,这不会泄漏任何东西 - 您不拥有由@selector()sel_registerName()返回的SEL值,即Objective-C运行时的值。

0

SEL类型只是一个C字符串,所以你不会有内存泄漏白衣重新幽会。

0

本示例不泄漏内存。在编译时对@selector()进行评估。你可能会泄漏一个SEL变量,但不是选择器本身。