0
釋放對象例如:不同的指針
MyClass *obj1 = [[MyClass alloc] init];
MyClass *obj2 = [obj1 retain];
與
[obj2 release];
[obj2 release];
釋放它是合法的做到這一點?對象是否會被正確釋放?
釋放對象例如:不同的指針
MyClass *obj1 = [[MyClass alloc] init];
MyClass *obj2 = [obj1 retain];
與
[obj2 release];
[obj2 release];
釋放它是合法的做到這一點?對象是否會被正確釋放?
是的,它會正常工作。無論您使用哪個指針變量,您都會在同一個對象上調用釋放。
雖然看起來有點奇怪。
而且,一個常見的成語是
[obj1 release], obj1 = nil;
[obj2 release], obj2 = nil;
它,如果你在兩行中使用obj2的顯然是行不通的。
您可以通過測試,如果obj1 == obj2
足夠容易檢查。