使用Swift,我正在尝试为简单动画创建一个UIImage对象数组 . animationImages
的上下文帮助读取,"The array must contain UI Image objects."
我试图按如下方式创建所述数组,但似乎无法使语法正确:
var logoImages: UIImage[]
logoImages[0] = UIImage(name: "logo.png")
抛出:!初始化之前使用的变量徽标图像
然后我试了一下
var logoImages = []
logoImages[0] = UIImage(named: "logo.png")
哪个投掷:!无法分配此表达式的结果
我've checked the docs here, but the context isn' t相同:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html
3 回答
你有两个问题(没有正则表达式!)
1.您没有创建数组 . 你需要这样做:
要么
要么
要么
2.如果要将新对象添加到数组中,则应使用Array.append()或一些等效的语法糖:
要么
要么
您需要追加到数组,因为(摘录from docs):
当然,你可以在可能的情况下简化它:
edit: 请注意,UIImage现在有"failable" initializer,这意味着它返回一个可选项 . 我已经更新了所有代码,以反映这一变化以及对数组语法的更改 .
您正在声明徽标图像的类型,但未创建该类型的实例 .
使用
var logoImages = UIImage[]()
将为您创建一个新阵列 ....然后在创建一个新的空数组实例之后,如@Jiaaro的回答所述,您不能使用下标添加到空数组