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

Posted

技术标签:

【中文标题】在 iOS5 中,我在图库中切换图片的方法很糟糕【英文标题】:in iOS5 my methods for switching pictures in gallery are bad 【发布时间】:2011-11-08 14:12:42 【问题描述】:

我有一些在画廊中观看图片的课程。在启用 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”

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

您将 UIView*integer (0) 进行比较 - 当然会收到警告。你想检查superview是否为nil吗?然后就这样做:

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

【讨论】:

以上是关于在 iOS5 中,我在图库中切换图片的方法很糟糕的主要内容,如果未能解决你的问题,请参考以下文章

图库照片不见了怎么恢复?

netcore使用ImageSharp裁切图片

jQuery 在第一次切换后仅在 Safari iOS5 中单击 3 次后触发

01字体图标iconfont的制作与使用--阿里矢量图库

从 android 图库中选择多张图片

移入切换图片路径;移出再切回去