如何使用 swift 子类类型的数组?

Posted

技术标签:

【中文标题】如何使用 swift 子类类型的数组?【英文标题】:How do I work with an array of swift subclass types? 【发布时间】:2015-06-08 18:11:15 【问题描述】:

我有几个PFObject 子类用作模型,我想循环调用Parse 的registerSubclass()。这是我目前拥有的:

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

```

我使用 Calendar.self 而不是 Calendar,因为 swift 的建议说 “使用 .self 引用类型对象”

问题是这会迭代 types,但我需要迭代 static classes

具体错误为'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】:

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

【讨论】:

Herp derp。感谢您注意到这一点。

以上是关于如何使用 swift 子类类型的数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SKNode.children 数组访问 SKNode 子类方法?

如何在Swift中正确地从父节点中删除SKSpriteNode的子类(要从数组中移除,屏幕上的空格......)?

Swift如何实现通用类型的弱引用数组(上)

Swift如何实现通用类型的弱引用数组(下)

Swift如何实现通用类型的弱引用数组(下)

Swift:返回 self 类型的数组