黑马程序员技术交流社区

标题: sel 的问题 [打印本页]

作者: 程序猿-2014    时间: 2014-4-11 20:42
标题: sel 的问题
本帖最后由 程序猿-2014 于 2014-4-12 11:09 编辑

- (void)test
{
    [self performSelector:_cmd];
}
只记得这一句会引发死循环     可是为什么会引发死循环呢    有没有简单直白的理解方法....
作者: 于清扬    时间: 2014-4-11 23:08
_cmd 代表当前方法的sel 等于就是@selector(test)
所以[self performSelector:_cmd];就等于是-test(),你在一个方法里无限调用自己,当然就死循环了
作者: 脸皮猴    时间: 2014-4-11 23:31
我靠。。刷技术分好明显哈哈哈。。。{:3_47:}
因为每一个方法内部都有一个隐形的sel常理,_cmd ,他与@selector(test)是相同的。
[self performSelector:_cmd]; // 说白了就是自己调用自己,必须就是死循环了。
作者: 程序猿-2014    时间: 2014-4-12 11:07
脸皮猴 发表于 2014-4-11 23:31
我靠。。刷技术分好明显哈哈哈。。。
因为每一个方法内部都有一个隐形的sel常理,_cmd ,他与@sele ...

我知道是自己调用自己     我问的是这个题的拆分出来   内存   程序运行的行为




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2