iPhone: за пределами [0 .. 8] ' - PullRequest
       2

iPhone: за пределами [0 .. 8] '

0 голосов
/ 04 марта 2011

Это сводит меня с ума!Я продолжаю падать с этой ошибкой.Ниже мой код.Я пытаюсь добавить дополнительную ячейку в свой UITabelView для функции «еще 25».Но у меня происходит сбой ниже внутри функции heightForRowAtIndexPath.Что я пропускаю?

TIA.

[NSMutableArray objectAtIndex:]: индекс 4294967295 за пределами [0 .. 8] '

0 CoreFoundation
0x01338be9 __exceptionPreprocess + 185 1 libobjc.A.dylib
0x0148d5c2 objc_exception_throw + 47 2 CoreFoundation
0x0132e6e5 - [__ NSArrayM objectAtIndex:] + 261 3
Токен-0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0: 0 * 0 * 0 * 0: 0 * 0 * 0 * 0 * 0 * 0ЗагДВП1013 *

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
    {
        NSLog(@"IndexRow int: %i", indexPath.row);
        NSLog(@"postsArray count: %i", [postsArray count]);
        if(indexPath.row < [postsArray count]){  **<----Where it crashes**
            Post *myPost = [postsArray objectAtIndex:[indexPath row] - 1];
            NSString *text = myPost.description;

            CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 88.0f);

            CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

            CGFloat height = MAX(size.height, 35.0f);

            return height + (CELL_CONTENT_MARGIN * 2) + 28.0f;
        }else{
            return 100.0f;
        }


    }

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {


        // Return 1 section which will be used to display the giant blank UITableViewCell as defined
        // in the tableView:cellForRowAtIndexPath: method below
        if ([self.postsArray count] == 0){

            return 1;

        } else if ([self.postsArray count] < 25) { //self.webServiceDataModel.total

            // Add an object to the end of the array for the "Load more..." table cell.
            NSLog(@"postsArray count: %i", [postsArray count]);
            return [self.postsArray count] + 1;
            NSLog(@"postsArray count after +1: %i", [postsArray count]);

        }   
        // Return the number of rows as there are in the postsArray Post data is empty.
        return [self.postsArray count];

    }

Ответы [ 2 ]

5 голосов
/ 04 марта 2011

[indexPath row] - 1 это проблема,

Для indexpath.row = 0 это будет -1.

[array objectAtIndex:-1] является исключением. Так происходит сбой.

1 голос
/ 04 марта 2011

Когда indexPath.row равно нулю, вы пытаетесь получить элемент с индексом -1 из массива ...

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