如何创建一个可以取类的值类型的空变量

时间:2016-09-04 11:12:58

标签: ios swift xcode

嘿,我想弄清楚如何将变量设置为空类的类型。如果这不是一个错误,就像这样:

代码:

  var PlayerEquipped = class() // failed attempt at trying set up a blank variable that can take the type of a class

或制作一个我将来可以改变的变量。所以基本上我可以创建一个这样的全局变量,并为其分配一个没有问题的类。

代码:

   var PlayerEquipped = House()

          //In another .swift file i have the 2 classes

    class House {
    init() {
     }
    }

    class House2 {
    init() {
     }
    }

但即使它的设置与" var"当我试图改变那个" SelectClass"变量到不同的类。例如,如果我要创建一个带有文本的字符串变量" Hello"在我的视图中,然后在负载决定将变量文本更改为" GoddBye"它会让我这样做。但是,如果我试图改变" SelectedClass"变量到不同的类我得到这个错误。它说'不能指定saintsRB类型的值来键入saintsLB' 代码:

      var PlayerEquipped = House()

   //down in view didload:
       PlayerEquipped = House2() // Error here

Picture of Error

2 个答案:

答案 0 :(得分:8)

尝试使用

var PlayerEquipped: AnyObject

或其可选等效项

var PlayerEquipped: AnyObject?

答案 1 :(得分:3)

根据您想要达到的目标,您有几个选择:

  1. 制定协议(例如%PATH%)。让你所有的房子都实现它。将您的变量声明为可构造(例如bash -i --login - 注意Buildable,因此您不必初始化它,它可能是零) - 通常我会这样做,试图避免继承

  2. 上课(例如var house:Buildable?)。让您所有的房屋(?House等)继承House1格式。将您的变量声明为House(例如House2

  3. 声明为Housevar house:House?可能有效,但它会严重限制您,并且在这种情况下可能不是您想要做的事情。

    作为建议,在继续前进和编写代码之前,请尝试掌握这些基本原则。