這裏是我的自定義類:的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