美文网首页
runtime 简单使用

runtime 简单使用

作者: ping_oO | 来源:发表于2017-04-11 20:06 被阅读11次

import UIKit

class User: NSObject,NSCopying,NSCoding {

var name = ""
var age = 0

required override init() {
    
}

required init?(coder aDecoder: NSCoder) {
    super.init();
    var count:UInt32 = 0;
    let list = class_copyPropertyList(User.self, &count)
    for i:Int in 0..<Int(count) {
        let property = list![i]
        let key = String.init(cString: property_getName(property))
        self .setValue(aDecoder.decodeObject(forKey: key), forKey: key)
    }
}

func encode(with aCoder: NSCoder) {
    var count:UInt32 = 0;
    let list = class_copyPropertyList(User.self, &count)
    for i:Int in 0..<Int(count) {
        let property = list![i]
        let key = String.init(cString: property_getName(property))
        aCoder .decodeObject(forKey: key)
    }
}
func copy(with zone: NSZone? = nil) -> Any {
    let copyObj = self
    return copyObj
}

override func mutableCopy() -> Any {
    let copyObj = type(of: self).init()
    var count:UInt32 = 0
    let list:UnsafeMutablePointer = class_copyPropertyList(User.self, &count)!
    for i:Int in 0..<Int(count) {
        let property:objc_property_t = list[i]!
        let key = String(cString: ivar_getName(property))
        let obj = self .value(forKey: key)
        copyObj.setValue(obj, forKey: key)
    }
    return copyObj
}

}

我写了个swift 3 的 ,不知道有没有问题,有问题可以帮我指出来,谢谢

相关文章

  • Runtime全面剖析之原理篇

    如果想了解Runtime的实际应用请看Runtime全面剖析之简单使用 一:Runtime简介二: Runtime...

  • runtime 简单使用

    import UIKit class User: NSObject,NSCopying,NSCoding { } ...

  • Runtime简单使用

    ios runtime 然后我们打开终端,在命令行找到cd到文件目录,然后中输入: clang -rewrite-...

  • runtime简单使用

    将字典转化为模型,面向模型开发,是在开发中最为常用的功能。利用KVC可以将字典转换为模型,但是前提有三个约束,一个...

  • iOS Runtime简单使用

    原文在此 Runtime 用Objective-C写的代码,在运行过程中都会被转化成C代码去执行。比如说OC的方法...

  • iOS Runtime 简单使用

    一、 发送消息 开发使用场景:调用未暴露的方法,前提条件,这个方法已经实现 导入#import

  • Runtime的简单使用

    Runtime简介 Runtime是一套底层的C语言API(包含了很多强大实用的C语言数据类型和C语言函数), 实...

  • runtime简单的使用

    最近在研究runtime,思考良久觉得好像在项目中并不实用。在研究了一些第三方库,才知道runtime真是黑魔法。...

  • Runtime的简单使用

    1.方法的交换使用那么在什么情况下需要使用到这个呢,让我来举个栗子?,请看以下代码,如果当照片的名字是错误的话或者...

  • RunTime的简单使用

    一、runtime简介 1.RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的...

网友评论

      本文标题:runtime 简单使用

      本文链接:https://www.haomeiwen.com/subject/jcitattx.html