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
足够容易检查。