使用Swift,我试图为一个简单的动画创建一个UIImage对象array.上下文帮助animationImages读,"数组必须包含UI图像对象."

我试图按如下方式创建上述数组,但似乎无法获得正确的语法:

var logoImages: UIImage[]
logoImages[0] = UIImage(name: "logo.png")

这引发了:

然后我试着

var logoImages = []
logoImages[0] = UIImage(named: "logo.png")

它抛出:

我查看了这里的文档,但上下文不一样:

推荐答案

你有两个问题(而且没有正则表达式!)

1.您没有创建array.你需要做:

var logoImages: [UIImage] = []

var logoImages: Array<UIImage> = []

var logoImages = [UIImage]()

var logoImages = Array<UIImage>()

2. If you want to add new objects to an array, you should use Array.append() 或 some of the equivalent syntactic sugar:

logoImages.append(UIImage(named: "logo.png")!)

logoImages += [UIImage(named: "logo.png")!]

logoImages += [UIImage(named: "logo.png")!, UIImage(named: "logo2.png")!]

您需要附加到数组中,因为(摘录from docs):

You can’t use subscript syntax to append a new item to the end of an array. If you try to use subscript syntax to retrieve 或 set a value f或 an index that is outside of an array’s existing bounds, you will trigger a runtime err或. However, you can check that an index is valid bef或e using it, by comparing it to the array’s count property. Except when count is 0 (meaning the array is empty), the largest valid index in an array will always be count - 1, because arrays are indexed from zero.

当然,如果可能的话,你可以随时简化:

var logoImage: [UIImage] = [
    UIImage(named: "logo1.png")!,
    UIImage(named: "logo2.png")!
]

edit:请注意,UIImage现在有一个"failable" initializer,这意味着它返回一个可选值.我已经更新了所有代码位,以反映这一变化以及对数组语法的变化.

Swift相关问答推荐

解析SON数据的API调用有什么问题?

SwiftUI状态更新

避免嵌套导航TabView

我正在try 通过代码设置节中页眉和页脚的高度,但它不起作用

像WebSocket一样接收实时更新,但通过异步/等待或组合

UICollectionViewCompostionalLayout Collectionview单元格宽度在重新加载数据后未正确调整大小

如何判断设备是否为 Vision Pro - Xcode 15 Beta 4

Swiftui 无法从核心数据中获取数据

从 Swift Vapor Server 中调用 ShazamKit

格式化大货币数字

动画偏移正在 destruct 按钮 SwiftUI

iOS16 Bug 键盘在表单解雇 SwiftUI 时打破布局

如何更改任务栏 colored颜色 和 sf 符号 colored颜色 ?

用于 Swift 编码的 iOS 应用程序的 Ffmpeg

如何防止 UITableViewCell 移动(Swift 5)

在 Swift 中计算两个日期之间的差异

Swift 中惰性 var 的优势是什么

快速在 LLDB 中使用 po

使用 phimagemanager 将图像保存到自定义相册?

在情节提要中设置的 UITableViewCell 的恢复 ID 和标识符有什么区别