A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© oucding 中级黑马   /  2015-4-14 23:51  /  536 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 oucding 于 2015-4-14 23:53 编辑

/*********Person对象********/
#import <Foundation/Foundation.h>
@interface Person : NSObject

@property (nonatomic, assign)int age; // 年龄

@end

@implementation Person

// 重写dealloc方法
- (void)dealloc{
    NSLog(@"%ld", [self retainCount]);
    NSLog(@"年龄为%d的Person对象被回收", _age);
    [super dealloc];
}

@end

int main() {
    @autoreleasepool {
        Person *p = [[[Person alloc] init] autorelease];
        p.age = 25;
    }
    return 0;
}

为啥程序运行的结果是:

QQ20150414-5@2x.png (6.95 KB, 下载次数: 5)

QQ20150414-5@2x.png

1 个回复

倒序浏览
因为你是在调用[suoper dealloc]之前打印的retainCount数据。调用之后又没办法打印。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马