【发布时间】:2023-03-30 15:15:01
【问题描述】:
我有一个这样初始化的类。
// 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 方法中添加保留:
self.daysOfWeek = [[NSMutableArray arrayWithCapacity:0] retain];
然后一切都按预期工作,我可以从 daysOfWeek 添加和检索对象。 我认为 synthesize 会保留 daysOfWeek,我在这里缺少什么?
谢谢
【问题讨论】:
-
self.daysOfWeek = [NSMutableArray arrayWithCapacity:0];应该没问题...检查您的代码 - 可能是您在不使用属性的地方覆盖您的数组或释放它...
标签: objective-c memory memory-management