大家在内存管理时遇到果这样的情形没有:有2个类:Car和Bus类,Bus类继承了Car类,两个类中都是非oc对象成员;当按照规范写alloc和release和dealloc时,会导致输出结果:对象Car被销毁了,输出2次;但是我们知道Car对象的饮用计数器
只有1,代码如下:
void test1(){
Car *c = [[Car alloc] init];
Bus * b = [[Bus alloc] init];
NSLog(@"%ld",[b retainCount]); NSLog(@"%ld",[c retainCount]); [b release]; [c release];
} int main() {
test1();
return 0; } @implementation Car
- (void)dealloc{
NSLog(@"Car对象被销毁了。"); [super dealloc]; } @end @implementation Bus
- (void)dealloc{
NSLog(@"Bus对象被销毁了。"); [super dealloc]; }
@end 这种现象很特殊,大家有什么办法解决没有?
|