在iOS5中,我在图库中切换图片的方法很糟糕



我有一些观看画廊图片的课程。在启用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个地方的代码问题。

我得到的文本是:

不允许用ARC

将'int'隐式转换为'UIView'

我怎样才能避免这种情况??谢谢。

您可以在此if ([self.image2 superview] == nil)上替换您的代码

您正在比较UIView*整数(0) -当然你会得到一个警告。是否要检查父视图是否为nil?然后这样做:

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

最新更新