对于循环,不能在自定义函数

时间:2016-06-15 17:38:51

标签: ios xcode swift

我有一个我根本想不通的问题。 我有一个应用程序,我使用pop来设置动画,以及动画完成后我想要循环的图像数组。

let images: [AnyObject] = [UIImage(named: "cat1")!, UIImage(named: "cat2")!, UIImage(named: "cat3")!, UIImage(named: "cat4")!]

动画完成:

func pop_animationDidStop(anim: POPAnimation!, finished: Bool) {
    if finished {
        if (anim.name == "myanim") {
            self.showImages()
        }
    }
}

Imageloop:

func showImages() {

    print("This Prints")
    for img in self.images as! [UIImage]{
        print(img)
        print("But this fails")
    }                
}

奇怪的是,如果我将相同的函数复制到.viewDidLoad()中,它可以正常工作,并打印所有图像。我根本不知道自己做错了什么。在我发现它在.viewDidLoad()中找到它之前,我尝试在for循环中更改数组的类型和多个其他类型,但是现在它在一个地方工作,而不是另一个地方,我很无能为力。

这有效:

override func viewDidLoad() {
    for img in self.images as! [UIImage]{
        print(img)
        print("This prints all the images")
    }  
}

所有xcode返回错误为“(lldb)”,这对我没有多大帮助。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

发布此内容后几分钟,以及几个小时的想知道和揉搓我的脑袋,我尝试了一些随机的东西并将函数showImages()放在.viewDidLoad()上面。这解决了它,我不知道在调用函数时有任何问题。