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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lanwen963 中级黑马   /  2014-11-6 18:47  /  1141 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建一个Person  ,内有个姓名属性NSString *_name;需要管理内存吗?我试了管不管理都不报错啊
// 重写setName
if(name != _name)
    {
        [_name release];
        _name = [name retain];
    }
// 重写dealloc
- (void)dealloc
{
     NSLog(@"%@的信息已销毁",_name);
   
    // 清理name
    [_name release];
   
    [super dealloc];

而且单独一个重写也不报错,有点晕了

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

5 个回复

正序浏览
具体问题要具体分析,你把问题和代码描述清楚再说吧,最好把所有代码贴出来
回复 使用道具 举报
yuanlingqi 发表于 2014-11-6 19:02
只要是对象都需要管理内存,如果设置了autorelease就不需要了。

我把代码写到autorelease中了,但是只对Person对象release没有管理NSString,我记得应该是系统自动管理的。
如果不重写dealloc,总感觉_name没销毁,如果不是系统自带的就好办了,就不这么纠结了
回复 使用道具 举报
doudou33420 发表于 2014-11-6 18:54
需要的呀 ....单独一个重写不报错是啥意思啊

就是只写if 和只写dealloc都不报错的
回复 使用道具 举报
只要是对象都需要管理内存,如果设置了autorelease就不需要了。
回复 使用道具 举报
需要的呀 ....单独一个重写不报错是啥意思啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马