gpt4 book ai didi

ios - 使用 Swift 发送到实例的无法识别的选择器

转载 作者:行者123 更新时间:2023-11-28 07:13:51 25 4
gpt4 key购买 nike

我正在尝试使用 swift 制作幻灯片应用程序,但我遇到了问题,在 main.storyboard 中,我添加了一个 imageview 和一个按钮,当用户单击该按钮时,幻灯片将播放动画。

我在 viewController.swift 中写了这段代码

@IBOutlet var ImageView: UIImageView!

@IBOutlet var animateBtn: UIButton!

@IBAction func animateBtnClicked(sender: UIButton) {
startAnimation()
}

var imageList:[UIImage]=[]

override func viewDidLoad() {

super.viewDidLoad()
for i in 1 ... 3{
let imagename="\(i).jpg"

imageList.append(UIImage(named: imagename)!)
}

}

func startAnimation()->(){
if !ImageView.isAnimating()
{
ImageView.animationImages=[imageList]
ImageView.startAnimating()
animateBtn.setTitle("Stop Animation", forState:UIControlState.Normal)}
else
{
ImageView.stopAnimating()
}

}

在 appdelegate.swift 我没有写任何代码。

但是当我点击按钮并显示此消息错误时,这个应用程序崩溃了

2014-12-02 09:54:55.693 #4 animation photo[921:613] -[Swift._NSSwiftArrayImpl _isResizable]: unrecognized selector sent to instance 0x7f82126615d0
2014-12-02 09:54:55.698 #4 animation photo[921:613] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Swift._NSSwiftArrayImpl _isResizable]: unrecognized selector sent to instance 0x7f82126615d0'

最佳答案

UIImageViewanimationImages 属性应该是 UIImage 对象的数组。您实际将其设置为 UIImage 对象数组的数组。那是因为你已经有了一个数组:

var imageList:[UIImage]=[]

...但是当您设置该属性时,您将其包裹在方括号中,这会将现有数组放入另一个更进一步的数组中:

ImageView.animationImages=[imageList]

当 ImageView 开始尝试对图像进行动画处理时,它希望其数组中的每个元素都是 UIImage,但它却找到了另一个数组。它尝试在数组对象上调用 UIImage 选择器 _isResizable,这就是您看到的错误:

-[Swift._NSSwiftArrayImpl _isResizable]: unrecognized selector sent to instance 0x7f82126615d0

所以,不要用数组包裹你的数组。直接设置为属性:

ImageView.animationImages = imageList

关于ios - 使用 Swift 发送到实例的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27244302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com