【发布时间】:2011-10-12 23:56:44
【问题描述】:
在我的最后一个问题 (here) 中,我遇到了一个问题,即我得到一个 EXC_BAD_ACCESS,因为我正在释放我刚刚分配的变量:
NSMutableArray* s = [[NSMutableArray alloc] init];
stack = s;
[s release];
应该是
NSMutableArray* s = [[NSMutableArray alloc] init];
stack = s;
但是,堆栈是我班级的保留属性。它是这样声明的:
@interface StateStack ()
@property (nonatomic, retain) NSMutableArray* stack;
@end
我的印象是,当您分配“保留”变量时,它会自动增加对象的 retainCount。所以你应该首先释放你的指针(如here)。
为什么这两种情况不同?谢谢!
【问题讨论】:
-
mmalc's answer 在您链接到的问题上也回答了您的问题。
标签: objective-c memory-management retain