这里是我的自定义类:的OBJ-C:调用release/dealloc中导致EXC_BAD_ACCESS
PolygonShape : NSObject {
int numberOfSides;
int minimumNumberOfSides;
int maximumNumberOfSides;
}
我的自定义init方法:
- (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,然后释放ing应该递减到0并调用dealloc,将该消息打印到NSLog,但我只是得到EXC_BAD_ACESS。我可以在创建对象后访问和更改对象中的字段,以便一切工作都可以完成。非常感谢您的帮助!
你有适当的autorelease池吗? (我目前唯一的想法!) – ShinTakezou 2010-06-10 21:25:08
不要忘记检查dreamlax的发布作为正确的答案。 – 2010-06-10 21:26:23