しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Swiftでプロパティー一覧を取得するclass_copyPropertyListメソッド

Swiftのclass_copyPropertyListメソッドについて調べてみました。
class_copyPropertyListを使うと下のようにプロパティ名を取得できます。

class MyClass: NSObject {
    var prop1 = ""
    var prop2 = ""
}

var count: UInt32 = 0
let properties = class_copyPropertyList(MyClass.self, &count)
for i in 0..<Int(count) {
    let prop = properties[i]
    let propName = NSString(UTF8String: property_getName(prop))
}

propertiesを見たところUnsafeMutablePointerというクラスが入っていました。

var count: UInt32 = 0
let properties = class_copyPropertyList(MyClass.self, &count)
print(properties.dynamicType) // → UnsafeMutablePointer<COpaquePointer>

UnsafeMutablePointerというクラスはC言語Swiftを繋ぐ為のクラスのようです。