UiView на scrollView сделать предупреждение памяти - PullRequest
1 голос
/ 05 марта 2012

Я использую этот код для создания пары представлений и добавления их к представлению с прокруткой, на каждом представлении у меня есть 4 изображения, которые я устанавливаю в цикле.когда я заканчиваю, я добавляю представление к представлению с прокруткой и к массиву, который имеет все представления, которые я добавляю к представлению с прокруткой:

for (int i = 0; i < numOfRows ; i++) {
    AlbumRow *tmp;
    NSArray *topLevelObjects = topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"AlbumRow" 
                                                        owner:nil 
                                                      options:nil];

    for (id currentObject in topLevelObjects) {
        if ([currentObject isKindOfClass:[UIView class]]) {
            tmp = (AlbumRow*) currentObject;
            break;
        }
    }

    int y = 0;
    if (i != 0) {
        y = 85 * i;
    }
    [tmp setFrame:CGRectMake(1, y, 320, 85)];

    [tmp setBackgroundColor:[UIColor clearColor]];

    int imgInRow = kItemInRow;

    for (int j = 0; j < imgInRow; j++) {
        if ([album.albumItems count] > current) {
            UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewClicked:)];
            ItemEntity *entity = [album.albumItems objectAtIndex:current];
            switch (j) {
                case 0:
                    tmp.image1.image = [UIImage imageWithContentsOfFile:entity.path];
                    [tmp.image1 setTag:current];
                    [tmp.image1 addGestureRecognizer:gestureRecognizer];
                    break;
                case 1:
                    tmp.image2.image = [UIImage imageWithContentsOfFile:entity.path];
                    [tmp.image2 setTag:current];
                    [tmp.image2 addGestureRecognizer:gestureRecognizer];
                    break;
                case 2:
                    tmp.image3.image = [UIImage imageWithContentsOfFile:entity.path];
                    [tmp.image3 setTag:current];
                    [tmp.image3 addGestureRecognizer:gestureRecognizer];
                    break;
                case 3:
                    tmp.image4.image = [UIImage imageWithContentsOfFile:entity.path];
                    [tmp.image4 setTag:current];
                    [tmp.image4 addGestureRecognizer:gestureRecognizer];
                    break;
                case 4:
                    tmp.image5.image = [UIImage imageWithContentsOfFile:entity.path];
                    [tmp.image5 setTag:current];
                    [tmp.image5 addGestureRecognizer:gestureRecognizer];
                    break;
                default:
                    break;
            }

            current++;
            [gestureRecognizer release];
            tmp.count++;
        }
    }

    [scroll addSubview:tmp];
    [rows addObject:tmp];
}

Мне нужно добавить его в массив, потому что я использую их в своем классепотом.Вот как я очищаю память, когда заканчиваю:

for (AlbumRow *row in rows) {
            [row removeFromSuperview];
        }

        [rows removeAllObjects];

Когда я добавляю много элементов в представление с прокруткой, я получаю много предупреждений об использовании памяти, в любом случае я сделал что-то не так?

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