【问题标题】:Managing memory in objective-C for auto properties set as (retain)在objective-C中管理设置为(保留)的自动属性的内存
【发布时间】:2010-11-13 10:06:31
【问题描述】:

如果我没有使用垃圾收集并且我有一个自动属性设置为保留。我应该释放我的 dealloc 中的对象还是生成的代码为我处理它。

更清楚的是,如果我不在 dealloc 中释放name,以下代码是否会泄漏内存。

Person.h

@interface Person : NSObject {
}
@property (retain) NSString* name;
@end

Person.m

#import "Person.h"

@implementation Person
@synthesize name;
@end

【问题讨论】:

    标签: objective-c memory-management


    【解决方案1】:

    @propertyretain/assign/copy 属性只会影响它们在 getter 和 setter 中的行为。您确实需要手动 -release -dealloc 中的 ivar。

    【讨论】:

      【解决方案2】:

      是的,这会造成内存泄漏。

      您应该手动释放它或在 dealloc 中释放它以防止内存泄漏。

      这是处理此问题的另一种方法..

      //.h 文件

      @interface 人:NSObject {

      NSString* 名称;

      }

      @结束

      //.m 文件

      导入“Person.h”

      @实现人

      -(void)ViewdidLoad

      {

      //可以通过self.name=[Nsstring StringWithFormat:@""];来使用这个;

      } @结束

      谢谢 希亚姆帕尔马

      【讨论】:

        猜你喜欢
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 2011-06-28
        相关资源
        最近更新 更多