对于以下
NSImage *image = [[UIImage imageNamed:@"foo.png"] retain];
...
[image release];
我的理解是,从 imageNamed 返回的对象应该会被自动释放。但是由于对象上有一个保留,然后是一个明确的释放。显式释放不仅会减少引用计数,还会触发整个对象的释放,而不是等待稍后进行 GC。假设是,当释放调用时,iOS 将首先尝试减少对象上的引用计数,然后发现当时没有其他主体在引用该对象,因此它决定释放分配的内存。是正确的理解和假设吗?