我如何使用一组swift子类类型?

时间:2015-04-03 16:15:38

标签: ios swift types parse-platform metaclass

我有一些PFObject子类,我将其用作模型,并且我想在循环中调用Parse的registerSubclass()。这就是我目前所拥有的:

    let subclasses: [PFObject.Type] = [ 
        Calendar.self,
        Meeting.self,
        UserSetting.self,
        Setting.self
    ]
    for subclass in subclasses {
        subclass.registerSubClass()
    }

```

我使用Calendar.self代替Calendar,因为快速的建议说"使用.self来引用类型对象"

问题是这会迭代类型,但我需要迭代静态类

具体错误为'PFObject.Type' does not have a member named 'registerSubClass'

如何对类进行快速迭代,而不是类型?

<小时/> 我也尝试过:

let subClasses: [PFObject] = [Calendar, ...]

但这不起作用:抱怨创建Calendar类型的实例

也尝试过:

let subClasses: [PFObject.Type] = [Calendar, ...]

但是这会给出expected member name or constructor after type call,并建议Use '.self' to reference the type object,这就是我使用Calendar.selfMeeting.self等方式达到顶级方法的方式。

1 个答案:

答案 0 :(得分:1)

首先,您在创建Array子类时做的一切正确,您的for-in循环也是正确的。你的错误是一个简单的错字。当你打算写registerSubClass时,你写了registerSubclass。我再说一遍,这个使用子类数组的正确方法。