【发布时间】:2011-03-02 09:44:39
【问题描述】:
这是我的自定义类:
PolygonShape : NSObject {
int numberOfSides;
int minimumNumberOfSides;
int maximumNumberOfSides;
}
我的自定义初始化方法:
- (id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min maximumNumberOfSides:(int)max {
if (self = [super init]) {
[self setMinimumNumberOfSides:min];
[self setMaximumNumberOfSides:max];
[self setNumberOfSides:sides];
}
return self;
}
我的dealloc方法:
- (void) dealloc {
NSLog("Calling dealloc");
[super dealloc];
}
我的崩溃示例代码:
PolygonShape *shape1 = [[PolygonShape alloc] initWithNumberOfSides:6 minimumNumberOfSides:5 maximumNumberOfSides:9];
[shape1 release];
我分配了一个 PolygonShape,将保留计数增加 1,然后释放应该将其减为 0 并调用 dealloc,将该消息打印到 NSLog,但我只得到 EXC_BAD_ACESS。创建对象后,我可以访问和更改对象中的字段,因此直到那里的所有内容都可以正常工作。非常感谢您的帮助!
【问题讨论】:
-
你有合适的自动释放池吗? (我目前唯一的想法!)
-
别忘了查看dreamlax 的帖子是否为正确答案。
标签: objective-c memory-management