黑马程序员技术交流社区

标题: NSString 用不用管理内存 [打印本页]

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

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

作者: doudou33420    时间: 2014-11-6 18:54
需要的呀 ....单独一个重写不报错是啥意思啊
作者: yuanlingqi    时间: 2014-11-6 19:02
只要是对象都需要管理内存,如果设置了autorelease就不需要了。
作者: lanwen963    时间: 2014-11-7 11:51
doudou33420 发表于 2014-11-6 18:54
需要的呀 ....单独一个重写不报错是啥意思啊

就是只写if 和只写dealloc都不报错的
作者: lanwen963    时间: 2014-11-7 11:59
yuanlingqi 发表于 2014-11-6 19:02
只要是对象都需要管理内存,如果设置了autorelease就不需要了。

我把代码写到autorelease中了,但是只对Person对象release没有管理NSString,我记得应该是系统自动管理的。
如果不重写dealloc,总感觉_name没销毁,如果不是系统自带的就好办了,就不这么纠结了
作者: yuanlingqi    时间: 2014-11-7 12:09
具体问题要具体分析,你把问题和代码描述清楚再说吧,最好把所有代码贴出来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2