Using the Swift class Mirror works if you want to extract name, value and type (Swift 3: type(of: value), Swift 2: value.dynamicType) of properties for an instance of a certain class.
If you class inherits from NSObject, you can use the method class_copyPropertyList together with property_getAttrib...