Ell*_*rez 0 null xcode objective-c dealloc
在下面的场景中,我遇到了崩溃
if (self.videoEngine != nil)
{
[self.videoEngine.player.view removeFromSuperview];
[videoEngine release];
self.videoEngine = nil;
}
Run Code Online (Sandbox Code Playgroud)
videoEngine对象是(非原子的,保留的),它是使用videoEngine = _videoEngine合成的.如果我删除self.videoEngine = nil行代码正常工作.这是正确的行为,为什么nil线会导致崩溃?self.videoEngine = nil是否仍会导致viewDidUnload函数出现问题?
当你调用"self.videoEngine = nil;"时 它调用它的setter方法并在setter方法中默认释放对象然后将它设置为你提供的值,所以在这种情况下你释放你的对象一次然后setter方法试图再次释放它导致崩溃,现在如果您删除"[videoEngine release];" 那没关系,没有内存泄漏.
希望现在很清楚.
归档时间: |
|
查看次数: |
1239 次 |
最近记录: |