吸气者和制定者以及财产保留在objective-c中

时间:2010-09-09 08:03:03

标签: objective-c memory memory-management

我有一个像这样初始化的课程。

// myclass.h
@property(nonatomic,retain) NSMutableArray *daysOfWeek; // this is in .h file

// myclass.m
@synthesize daysOfWeek;

-(id)init {
            if(self=[super init]) {
                    // initialize days of week
                    self.daysOfWeek = [NSMutableArray arrayWithCapacity:0];
            }
            return self;
    }

然而,在应用程序生命周期的后期,似乎daysOfWeek被释放了。如果我在init方法中添加retain:

self.daysOfWeek = [[NSMutableArray arrayWithCapacity:0] retain];

然后一切都按预期工作,我可以从daysOfWeek添加和检索对象。 我认为合成将保留daysOfWeek,我在这里缺少什么?

谢谢

1 个答案:

答案 0 :(得分:3)

问题出在其他地方。您原来的init没问题。