в iOS5 мои методы переключения картинок в галерее плохие - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть несколько классов для просмотра картинок в галерее. в этих классах после включения ARC я получаю сообщение, что неявное преобразование запрещено ARC, и я не могу запустить приложение.

Эти методы:

- (void) curlToPrevious
{
    if (currentImageIndex == 0) return;



         if ([self.image2 superview] == NO) {

        self.image2.image = (UIImage*) [imageViews objectAtIndex:(currentImageIndex-1)];
    } else {
        self.image1.image = (UIImage*) [imageViews objectAtIndex:(currentImageIndex-1)];
    }

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:kTransitionDuration];

    currentImageIndex--;

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.containerView cache:YES];

    if ([self.image2 superview] == NO) {
        [self.image1 removeFromSuperview];
        [self.containerView addSubview:self.image2];
    } else {
        [self.image2 removeFromSuperview];
        [self.containerView addSubview:self.image1];
    }

    [UIView commitAnimations];
    [self updateCurrentImageCounter];
}

- (void) curlToNext
{
    if (currentImageIndex == ([self imageCount]-1)) return;

    if ([self.image2 superview] == NO) {
        self.image2.image = (UIImage*) [imageViews objectAtIndex:(currentImageIndex+1)];
    } else {
        self.image1.image = (UIImage*) [imageViews objectAtIndex:(currentImageIndex+1)];
    }
    currentImageIndex++;


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:kTransitionDuration];

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.containerView cache:YES];

    if ([self.image2 superview] == NO) {
        [self.image1 removeFromSuperview];
        [self.containerView addSubview:self.image2];
    } else {
        [self.image2 removeFromSuperview];
        [self.containerView addSubview:self.image1];
    }

    [UIView commitAnimations];
    [self updateCurrentImageCounter];
}

У меня есть

if ([self.image2 superview] == NO) {

В этой строке на 4 места в коде проблемы.

Текст, который я получаю:

неявное преобразование int в UIView запрещено ARC

Как я могу избежать этого ??? Спасибо.

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Вы сравниваете UIView * с целым числом (0) - конечно, вы получаете предупреждение. Вы хотите проверить, является ли суперпредставление нулевым? Тогда просто сделай это:

if([self.image2 superview] == nil) { ... }

1 голос
/ 08 ноября 2011

Вы можете заменить свой код на этом if ([self.image2 superview] == nil)

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