swift - 如何在swift中运行时为基本数据类型的key设置值?

标签 swift swift3 runtime kvc

正如主题所说,有一个类,我想在运行时为属性设置值, 我已经设置了从 NSObject 使用 KVC mechanism and Reflect mechanism 继承的值,而且我还需要为那些没有继承自 NSObject 的设置值,比如 dataType 是 Int, Double 。我怎样才能做到呢?

最佳答案

setValue(value: Any?, forKey: String) 的签名采用 Any? 而不是 AnyObject?。因此该值不必是 NSObject 子类。

class MyClass : NSObject {
    public var intField : Int = 100;
    public var doubleField : Double = 10.0;
}

let a = MyClass()
a.setValue(200, forKey: "intField")
a.setValue(20.0, forKey: "doubleField")

print(a.intField) // Output: 200\n
print(a.doubleField) // Output: 20.0\n

关于swift - 如何在swift中运行时为基本数据类型的key设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376293/

相关文章:

ios - 框架在自动生成的 swift 文件中不可见

ios - 有没有办法使用 SpriteKit 获取屏幕上所有触摸的 NSSet?

ios - RxSwift 使用 bindTo 将 Variable<String> 绑定(bind)到 UILabel 不适用于 Swift 3.0 更新

algorithm - lg * N在算法分析中的意义

c++ - 有没有运行时 C++ 汇编程序库?

ios - 快速解压文件

swift - iOS 12 错误 : appears to be from a different NSManagedObjectModel than this context's

nstableview - swift 3 : Sort (formerly sort-in-place) array by sort descriptors

ios - 无法连接 IBOutlet

java - java数组是如何真正工作的