kmi*_*las 35 arrays uiimage ios swift
使用Swift,我正在尝试为简单动画创建一个UIImage对象数组.animationImages
读取的上下文帮助"数组必须包含UI图像对象".
我试图按如下方式创建所述数组,但似乎无法使语法正确:
var logoImages: UIImage[]
logoImages[0] = UIImage(name: "logo.png")
Run Code Online (Sandbox Code Playgroud)
抛出:!初始化之前使用的变量徽标图像
然后我试了一下
var logoImages = []
logoImages[0] = UIImage(named: "logo.png")
Run Code Online (Sandbox Code Playgroud)
哪个投掷:!无法分配此表达式的结果
我在这里查看了文档,但上下文不一样:https: //developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html
Jia*_*aro 82
你有两个问题(没有正则表达式!)
var logoImages: [UIImage] = []
Run Code Online (Sandbox Code Playgroud)
要么
var logoImages: Array<UIImage> = []
Run Code Online (Sandbox Code Playgroud)
要么
var logoImages = [UIImage]()
Run Code Online (Sandbox Code Playgroud)
要么
var logoImages = Array<UIImage>()
Run Code Online (Sandbox Code Playgroud)
Array.append()
或某些等效的语法糖:logoImages.append(UIImage(named: "logo.png")!)
Run Code Online (Sandbox Code Playgroud)
要么
logoImages += [UIImage(named: "logo.png")!]
Run Code Online (Sandbox Code Playgroud)
要么
logoImages += [UIImage(named: "logo.png")!, UIImage(named: "logo2.png")!]
Run Code Online (Sandbox Code Playgroud)
您需要附加到数组,因为(摘自docs):
您不能使用下标语法将新项追加到数组的末尾.如果尝试使用下标语法来检索或设置超出数组现有边界的索引的值,则会触发运行时错误.但是,通过将索引与数组的count属性进行比较,可以在使用之前检查索引是否有效.除非count为0(表示数组为空),否则数组中最大的有效索引将始终为count-1,因为数组从零开始索引.
当然,你可以在可能的情况下简化它:
var logoImage: [UIImage] = [
UIImage(named: "logo1.png")!,
UIImage(named: "logo2.png")!
]
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,UIImage现在有一个"可用的"初始化程序,这意味着它返回一个可选项.我已经更新了所有代码,以反映这一变化以及对数组语法的更改.