这是SO中的一个已经回答的问题,但我无法在任何地方的Apple文档中找到它。你能指出我正确的方向吗?performSelector:withObject:及其保留行为
在以下主题
Do I have to retain an object before passing it to -performSelector:withObject:afterDelay:?
the effect on retain count of performSelector:withObject:afterDelay:inModes
Is object that calls performSelector:withObject:afterDelay get retained by the NSRunLoop?
默认的行为似乎是以下几点:它保留了接收器和参数(S)。
我用下面的代码
[[self delegate] performSelector:@selector(tryToSendStoreData:) withObject:userData];
其中userData
是一个自动释放oject。
记录保留计数(我知道它可能无效)传入的数据会递增其保留计数。在代理上调用该方法时,保留计数不等于1。
所以,我的问题是:我是否需要执行一些内存管理以避免泄漏或者我必须信任Apple的东西?因为我找不到合适的文档,所以在这里我讲的是不可知论者。
预先感谢您。
我相信数是根据ARC – Dustin
@Cake不再准确,我没有在这个项目中使用ARC保留。谢谢。 –
对于启用ARC项目,你可以看看 - http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknown – rishi