iOS如何在Swift中获取对象的属性类型?

阿尔伯特·博里

我正在尝试获取Swift中某个对象的属性信息。我已经能够获取属性的名称和某些属性,但是我不确定如何提取属性的类型。

我一直在尝试遵循与此Objective-C相关的帖子中的一些建议

class func classOfProperty(parentType: AnyClass, propertyName: String) -> AnyClass?
{
    var type: AnyClass?

    var property: objc_property_t = class_getProperty(parentType, propertyName);

    var attributes = NSString(UTF8String: property_getAttributes(property)).componentsSeparatedByString(",") as [String]

    if(attributes.count > 0) {
        ?????
    }

    return type
}

在Swift中有可能吗?如果是这样,怎么办?

阿尔伯特·博里

在Swift 1.2中,可能会发生以下情况:

import Foundation

func getPropertyType(parentType: NSObject.Type, propertyName: String) -> Any.Type? {
    var instance = parentType()
    var mirror = reflect(instance)

    for i in 0..<mirror.count {
        var (key, valueInfo) = mirror[i]
        if key == propertyName {
            return valueInfo.valueType
        }
    }

    return nil
}

enum EyeColor: Int { case Brown = 1, Blue = 2, Black = 3, Green = 4 }
class Person: NSObject {
    var name = "Fred"
    var eyeColor = EyeColor.Black
    var age = 38
    var jumpHeight: Float?
}

println(getPropertyType(Person.self, "name"))
println(getPropertyType(Person.self, "eyeColor"))
println(getPropertyType(Person.self, "age"))
println(getPropertyType(Person.self, "jumpHeight"))

不幸的是,它们必须是NSObjects(或其他具有强制默认构造函数的类)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS如何在Swift中获取对象的属性类型?

来自分类Dev

如何在C#中获取另一个对象的属性的对象类型?

来自分类Dev

数据类型如何从对象中获取其属性?

来自分类Dev

如何在Typescript中按属性过滤对象类型的并集?

来自分类Dev

如何在CodeProperty中获取属性的类型?T4

来自分类Dev

如何在TypeScript中获取接口属性的类型?

来自分类Dev

如何在jQuery中获取数据类型属性?

来自分类Dev

如何在python中获取类属性(Django模型)的类型

来自分类Dev

如何在Android中获取偏好的对象类型?

来自分类Dev

如何在javascript中获取文件对象的所有属性?

来自分类Dev

如何在Django模板中获取对象属性进行循环

来自分类Dev

如何在PHP中获取对象的受保护属性值

来自分类Dev

如何在Swift中从JSON对象删除属性(key:values)

来自分类Dev

如何获取对象属性的类型提示?

来自分类Dev

如何从地图的内容对象获取属性类型

来自分类Dev

如何在iOS Swift中从括号中获取数据?

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

如何在Swift 3中获取类属性标签?

来自分类Dev

如何在iOS上的Swift中获取sharedApplication?

来自分类Dev

如何在Swift / iOS中解析Json并获取所需的值?

来自分类Dev

如何在iOS Swift中从Google Places API获取坐标

来自分类Dev

如何在iOS Swift中获取敲击点(坐标)

来自分类Dev

如何在Swift / iOS中解析Json并获取所需的值?

来自分类Dev

如何在ios swift中获取表情符号的unicode

来自分类Dev

如何在不使用python初始化的情况下获取类对象的属性类型

来自分类Dev

如何在dapper中包含具有通用列表属性和引用类型属性的对象?

来自分类Dev

如何定义要从TypeScript中的数组中获取其属性的对象的类型

来自分类Dev

在对象原型中定义属性并获取对象的类型

Related 相关文章

  1. 1

    iOS如何在Swift中获取对象的属性类型?

  2. 2

    如何在C#中获取另一个对象的属性的对象类型?

  3. 3

    数据类型如何从对象中获取其属性?

  4. 4

    如何在Typescript中按属性过滤对象类型的并集?

  5. 5

    如何在CodeProperty中获取属性的类型?T4

  6. 6

    如何在TypeScript中获取接口属性的类型?

  7. 7

    如何在jQuery中获取数据类型属性?

  8. 8

    如何在python中获取类属性(Django模型)的类型

  9. 9

    如何在Android中获取偏好的对象类型?

  10. 10

    如何在javascript中获取文件对象的所有属性?

  11. 11

    如何在Django模板中获取对象属性进行循环

  12. 12

    如何在PHP中获取对象的受保护属性值

  13. 13

    如何在Swift中从JSON对象删除属性(key:values)

  14. 14

    如何获取对象属性的类型提示?

  15. 15

    如何从地图的内容对象获取属性类型

  16. 16

    如何在iOS Swift中从括号中获取数据?

  17. 17

    如何在Swift中获取所有静态属性?

  18. 18

    如何在Swift中获取所有静态属性?

  19. 19

    如何在Swift 3中获取类属性标签?

  20. 20

    如何在iOS上的Swift中获取sharedApplication?

  21. 21

    如何在Swift / iOS中解析Json并获取所需的值?

  22. 22

    如何在iOS Swift中从Google Places API获取坐标

  23. 23

    如何在iOS Swift中获取敲击点(坐标)

  24. 24

    如何在Swift / iOS中解析Json并获取所需的值?

  25. 25

    如何在ios swift中获取表情符号的unicode

  26. 26

    如何在不使用python初始化的情况下获取类对象的属性类型

  27. 27

    如何在dapper中包含具有通用列表属性和引用类型属性的对象?

  28. 28

    如何定义要从TypeScript中的数组中获取其属性的对象的类型

  29. 29

    在对象原型中定义属性并获取对象的类型

热门标签

归档