Основная цель C Проблема - PullRequest
0 голосов
/ 08 мая 2011

В моем классе драйверов я вызываю этот метод:

NSMutableArray *test = [[myGrid getLoc:5 : 5] getAdjacentLocation: 2 : 2];

Заголовок и первая строка реализации getAdjacentLocation:

- (NSMutableArray*) getAdjacentLocation: (int)w: (int)h{
    NSLog(@"checkpoint");
}

Реализация getLoc:

- (Location*)getLoc:(int)i : (int)j {
    NSLog(@"check");
    return (Location*)locations[i][j];
}

Предполагается, что он возвращает местоположение из двухмерного массива. Хотя NSLog - это вызов, я не думаю, что он возвращает его правильно? (можно ли получить 2d массивы со свойствами?)

Я инициирую такие места

int x = 0; int y = 0;

        //row
        for(int i = 0; i < 1000; i+=40){
            //column
            for(int j = 0; j < 1000; j+=40) {

                locations[y][x] = [[Location alloc] initWithPosition:CGPointMake(i, j)];

                NSLog(@"%@" ,NSStringFromCGPoint(locations[y][x].locPosition));

                y++;


            }

            x=0;
            y++;

        }

Я мог бы делать что-то глупое с управлением памятью, так как это совершенно ново для меня.

Первое утверждение в этом методе getadjacentlocation не выполняется. Зачем? Вероятно, это очень глупая ошибка, но кто-нибудь может мне здесь помочь? Спасибо.

Ответы [ 2 ]

1 голос
/ 08 мая 2011

Ваш метод getLoc::, вероятно, возвращает nil, поскольку в коде инициализации вашего местоположения вы увеличиваете только y, а не x, оставляя большинство элементов местоположения неопределенными.Исправьте ваш цикл, чтобы увеличить х внутри столбца для цикла.

0 голосов
/ 08 мая 2011

Методы Obj-c должны иметь параметры и имена.Вы должны назвать свои параметры, поэтому ваш метод должен быть объявлен getAdjacentLocationWidth:(int)w height:(int)h и назван как [object getAdjacentLocationWidth:2 height:2];.Я добавил слова ширины и высоты к имени метода, чтобы вы могли определить, какой параметр какой.

(Вы также должны пойти и назвать параметры в методе -getLoc::.)* Примечание : отредактировано от ответа, который был неправильным ответом на рекомендацию именованных параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...