2016-03-22 4 views
1

Когда я пытаюсь передать Swift вложенный класс функционировать ожидая AnyClass параметра я получаю следующее сообщение об ошибке компилятора:Не удается передать Swift вложенного класса в качестве параметра AnyClass

Expected member name or constructor call after type name

Есть ли способ я могу исправить выше ошибки и передать вложенный класс как параметр?

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 

ответ

1

Решение заключается в использовании .self для типа доступа

let i = getInfo(Outer.Data.self) 
Смежные вопросы