- (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子句,如果选择器每次都通过分配一个新的选择器而泄漏(上面的代码是假设而不是我正在做的事情)。
感谢任何帮助。
谢谢, 詹姆斯琼斯
答案 0 :(得分:3)
不,这不会泄漏任何内容 - 您不拥有SEL
和sel_registerName()
返回的@selector()
值,Objective-C运行时会这样做。
答案 1 :(得分:0)
SEL类型只是一个C字符串,因此您不会有重新分配的内存泄漏。
答案 2 :(得分:0)
此示例不会泄漏内存。 @selector()
在编译时进行评估。您可能会泄漏SEL
变量,但不会泄漏选择器本身。