tiledViewsStack
包含UIImageViews。我试图给阵列中的每个UIImageView一个新的中心坐标。不知道为什么我在for循环的最后一行收到此错误...
var tiledViewsStack = [AnyObject]()
var randLocInt = Int()
var randLoc = CGPoint()
for var any in tiledViewsStack
{
randLocInt = Int((arc4random()*10) % 9) // 0, --- 8
randLoc = allCenters[randLocInt].CGPointValue()
any.center = randLoc
}
答案 0 :(得分:1)
需要使tiledViewsStack
成为一堆UIImages,而不是AnyObjects。已将var tiledViewsStack = [AnyObject]()
更改为var tiledViewsStack = [UIImageView]()
。
答案 1 :(得分:0)
使用 Anyobject 时,您使用的是协议。
它可以是任何类型的istance。 所以 AnyObject 可以表示Int,Float,String,UIView,任何东西。
数组 [AnyObject] 是一种非特定类型,用于表示任何类型的类。在您的代码中,您初始化一个永远不可变的数组,当您尝试修改每个元素时,您会收到错误..
声明和初始化此数组类型的正确方法是:
var genericTypeArray : [AnyObject] = [1, true, 1.2, "hello"]
对于您的代码,您必须更改:
var tiledViewsStack = [AnyObject]()
使用类似我的示例的代码,或者您根据注释中的建议修改具有指定类(如UIImageView)的AnyObject类。