EXC_BAD_EXCESS в Objective C, когда функция использует геттер - PullRequest
0 голосов
/ 12 февраля 2012
- (NSDictionary *)myPropertyList   //Calling getter of myPropertyList
{
    if(!_myPropertyList){
        NSArray *colorsUsed = [[NSArray alloc] initWithObjects:[UIColor redColor], [UIColor blueColor], nil];
        _myPropertyList=[[NSDictionary alloc] initWithObjectsAndKeys: colorsUsed, @"colorUsed",[NSNumber numberWithDouble:MAX_RADIUS],@"maximumRadius",[NSNumber numberWithDouble:MIN_RADIUS],@"minimumRadius", [NSNumber numberWithInt:20],@"circleNumbers", nil];;
    }
    return _myPropertyList;
}

- (NSArray *)generateCircleList
{
    int minRadius=[[self.myPropertyList objectForKey:@"minimumRadius"] intValue];
    int maxRadius=[[self.myPropertyList objectForKey:@"maximumRadius"] intValue];
    ...
    //code continues

У меня есть этот кусок кода в моей модели. Когда вызывается функция generateCircleLlist, которая использует myPropertyList, происходит сбой с ошибкой EXC_BAD_ACCESS. Я действительно огляделся, но не смог найти решения. Любая помощь?

1 Ответ

0 голосов
/ 12 февраля 2012

Вы создаете colorsUsed, но используете colorUsed, также добавьте [colorsUsed release];для управления памятью.

if(!_myPropertyList){

    NSArray *colorsUsed = [[NSArray alloc] initWithObjects:[UIColor redColor], [UIColor blueColor], nil];
    _myPropertyList=[[NSDictionary alloc] initWithObjectsAndKeys: colorsUsed, @"colorUsed",[NSNumber numberWithDouble:MAX_RADIUS],@"maximumRadius",[NSNumber numberWithDouble:MIN_RADIUS],@"minimumRadius", [NSNumber numberWithInt:20],@"circleNumbers", nil];

    [colorsUsed release];
}
...