【问题标题】:Cannot pass Swift nested class as AnyClass parameter无法将 Swift 嵌套类作为 AnyClass 参数传递
【发布时间】:2016-03-22 21:13:05
【问题描述】:

当我尝试将 Swift 嵌套类传递给期望 AnyClass 参数的函数时,出现以下编译器错误:

类型名称后的预期成员名称或构造函数调用

有没有办法修复上述错误并将嵌套类作为参数传递?

func getInfo(type: AnyClass) -> UInt32
{
    var outPropCount: UInt32 = 0

    let properties: UnsafeMutablePointer<objc_property_t> = class_copyPropertyList(type, &outPropCount);

    free(properties)
    return outPropCount
}

public class Outer: NSObject
{
    public class Data: NSObject
    {
        public var groups: [Int] = []
    }
}

public class Data: NSObject
{
    public var groups: [Int] = []
}


let o = getInfo(Outer) // works 

let d = getInfo(Data) // works

let i = getInfo(Outer.Data) // fails to compile

【问题讨论】:

    标签: swift swift2


    【解决方案1】:

    解决方法是使用.self访问类型

    let i = getInfo(Outer.Data.self)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多