EXC_BAD_ACCESS в xcode - PullRequest
       3

EXC_BAD_ACCESS в xcode

0 голосов
/ 20 июня 2011

в моем приложении я использую массив для печати изображений в представлении изображения, представленного в табличном представлении. Массив используется для хранения компонентов, которые я ввел в текстовое поле, каждый из которых разделен пробелом, например, я ввел Boy Girlзатем массив будет хранить Boy как один объект, а Girl как другой, а затем искать изображения каждого. Следующий код - мой код: -

-(IBAction)Click
{

    //count = [youSaid.text intValue];
    //count=1;
    //NSArray *sub= [youSaid.text componentsSeparatedByString:@" "];
    j=1;
    sentence=[youSaid.text componentsSeparatedByString:@" "];

    //[substring addObject:youSaid.text];
    [tableView reloadData];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;

    static NSString *AutoCompleteRowIdentifier = @"AutoCompleteRowIdentifier";

    cell = [tableView dequeueReusableCellWithIdentifier:AutoCompleteRowIdentifier];
    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:AutoCompleteRowIdentifier] autorelease];
        UIImageView * imageView1 = [[[UIImageView alloc] initWithFrame:CGRectMake(25, 4, 80, 80)] autorelease];
        UIImageView * imageView2 = [[[UIImageView alloc] initWithFrame:CGRectMake(115,4,80, 80)] autorelease];
        UIImageView * imageView3 = [[[UIImageView alloc] initWithFrame:CGRectMake(205,4, 80, 80)] autorelease];
        UIImageView * imageView4 = [[[UIImageView alloc] initWithFrame:CGRectMake(295,4, 80, 80)] autorelease];
        imageView1.tag = j;
        imageView2.tag = j+1;
        imageView3.tag = j+2;
        imageView4.tag = j+3;
        //imageView1.tag=t;
//      t++;
//      imageView2.tag=t;
//      t++;
//      imageView3.tag=t;
//      t++;
//      imageView4.tag=t;
//      t++;

        [cell.contentView addSubview:imageView1];
        [cell.contentView addSubview:imageView2];
        [cell.contentView addSubview:imageView3];
        [cell.contentView addSubview:imageView4];

    }
    //[sentence addObject:@"BLINK"];
    // UIImageView * imageView;
    //for ( int i = 1; i <= j; i++ ) {
        for ( int i = 1; i <= j; i++ ) {
        imageView = (UIImageView *)[cell.contentView viewWithTag:i];

        //button = (UIButton *)[cell.contentView viewWithTag:i];
        imageView.image = nil;

        //[button setImage:nil forState:UIControlStateNormal];
    }


    int photosInRow;
    //NSLog([NSString stringWithFormat:@"%d", [sentence count]]);

    if ( (indexPath.row < [tableView numberOfRowsInSection:indexPath.section] - 1) 
|| ([sentence count] % 4 == 0) ) {

        photosInRow = 4;

    } else {
        photosInRow = [sentence count] % 4;
    }

   // for ( int i = 1; i <= photosInRow; i++ ) 
    for ( int i = 1; i <=[sentence count]; i++ ){
        imageView = (UIImageView *)[cell.contentView viewWithTag:i];

        //button = (UIButton *)[cell.contentView viewWithTag:i];

        [self setImage1:imageView];

        //[self setImage1:button];

        //imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", i]];

        //imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png", youSaid.text]];

                //imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"1.png"]];

    }



    //cell.textLabel.text = [autoCompleteArray objectAtIndex:indexPath.row];
    return cell;
}

Я получаю EXC_BAD_ACCESS, когда я получаю доступ к своему массиву другим методом.В чем причина этого. Пожалуйста, помогите.

Спасибо, Кристи

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Если sentence является свойством класса с атрибутом retain, используйте синтаксис с точечной нотацией, то есть
self.sentence = [youSaid.text componentsSeparatedByString:@" "];
, чтобы правильно сохранить объект sentence.Убедитесь, что вы выпустили sentence в вашем dealloc методе, чтобы избежать утечек памяти.

1 голос
/ 20 июня 2011

Добавить удержание ....

sentence=[youSaid.text componentsSeparatedByString:@" "];
[sentence retain];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...