Arrays 数组中的变量/类

Arrays 数组中的变量/类,arrays,swift,Arrays,Swift,所以我有点困在某件事上了。 我有点想在我杀了我的怪物的时候随便扔一滴。 这就是我得到的 我有武器 class weapon { var str = Int } class Weapon1: weapon { override init() { super.init() str = 10 } class Weapon2: weapon { override init() { super.init() str = 20 } 我有一个怪物 c

所以我有点困在某件事上了。 我有点想在我杀了我的怪物的时候随便扔一滴。 这就是我得到的

我有武器

class weapon {
   var str = Int
}
class Weapon1: weapon {
    override init() {
        super.init()
 str = 10
}
class Weapon2: weapon {
    override init() {
        super.init()
 str = 20
}
我有一个怪物

class monster {
   str = 20
   def = 10
   drops = [weapon1(), Weapon2()]
}
如果我的怪物是死亡,我有一个地方可以将我的滴水与之联系起来

var itemdrops = weapon()
当我的怪物死亡时,它会将我的怪物掉落链接到我的物品掉落。。 所以我可以在某个地方使用它,比如在库存中。 但是当我试着这样做的时候

random = (arc4random_uniform(UInt32(monster.items.count-1))) 

//-1 becous it would say 2 items and an array starts at 0
itemdrops = monster.items[random]

但是项目是白色的。

问题是
项目
怪物
的实例属性:

class monster {
   str = 20
   def = 10
   drops = [weapon1(), Weapon2()]
}
但当您尝试访问它时,您尝试通过类访问它:

monster
没有类/静态属性
,因此您的代码无法编译

这是使用大写字母作为类名的一个很好的理由。它可以帮助您跟踪这个东西是类还是实例。例如:

class Monster {
   str = 20
   def = 10
   drops = [Weapon1(), Weapon2()] // assume you've named these classes correctly
}
现在,在代码中,您会说:

let aMonster = Monster() // an _instance_
var itemdrops = aMonster.items[random]

类武器2
不继承自
类武器
-也请使用大写字母开始类名称。-也请出示你的真实代码。复制和粘贴。不要用手打字,犯这样的错误。我们需要看到真实的代码来帮助你。如果我去发布我的所有代码,它会有点混乱。。。代码是好的,我想要的是给我的var itemdrops掉掉掉的项的所有属性..代码不是好的,因为它甚至没有编译。并不是说很难弄清楚原因,但我认为如果你请求帮助,这是一种常见的礼貌;)。谢谢你的帮助,就像我希望的那样:),现在是一个小问题,我的武器有一个形象。Img=UIImage(名为:“剑”)或类似的东西。但我似乎不能把它一点一滴地说出来。我的意思是……不要泄气。我已经回答了你问的问题。接受或不接受我的回答,但不要通过提出一个新的、不相关的问题作为评论来延长这段时间。如果您还有其他问题,请开始新的问题。好的,很抱歉,可以:)再次感谢您回答我的问题:)
let aMonster = Monster() // an _instance_
var itemdrops = aMonster.items[random]