objective-c中的Getter和setter及其性质

objective-c中的Getter和setter及其性质,objective-c,memory,memory-management,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

我有一个类,它是这样初始化的

// 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添加和检索对象。 我想我会保留每周的一天,我在这里错过了什么


谢谢

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

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

self.daysOfWeek=[NSMutableArray阵列,容量:0];应该很好。。。检查您的代码-可能是在不使用属性的地方覆盖了数组,还是将其释放…self.daysOfWeek=[NSMutableArray arrayWithCapacity:0];应该很好。。。检查您的代码-可能是您在不使用属性的地方覆盖了您的数组,还是将其释放…是的,问题出在错误的dealloc方法实现中。这个问题不需要任何答案,也不会给网站增加任何真正的价值,不幸的是,我不能标记为delete。是的,问题出在错误的dealloc方法实现中。这个问题不需要任何答案,也不会给网站增加任何真正的价值,不幸的是,我不能将其标记为删除。