首页 > 其他分享 >扩展加属性 swift

扩展加属性 swift

时间:2022-09-19 11:15:05浏览次数:60  
标签:extension AGE 扩展 objc KEY swift class 属性

在Swift中,class依然可以使用关联对象
默认情况,extension不可以增加存储属性
借助关联对象,可以实现类似extension为class增加存储属性的效果

class Person {}
extension Person {
    private static var AGE_KEY: Void?
    var age: Int {
        get {
            (objc_getAssociatedObject(self, &Self.AGE_KEY) as? Int) ?? 0
        }
        set {
            objc_setAssociatedObject(self,
                                     &Self.AGE_KEY,
                                     newValue,
                                     .OBJC_ASSOCIATION_ASSIGN)
        }
    }
}

 

标签:extension,AGE,扩展,objc,KEY,swift,class,属性
From: https://www.cnblogs.com/huangzs/p/16707002.html

相关文章

  • 属性选择器
    属性选择器简介属性选择器可以根据元素的属性及属性值来选择元素语法*[attr]:选中带有以attr命名的属性的所有元素*[attr="value"]:选中带有以attr命名的属性,......
  • 扩展欧几里得
    考虑问题求\(\ax\equiv1\pmod{b}\)的最小整数解,其中\(2\leqslanta,b\leqslant2000000000\)\(\\\)数据范围这么大我们肯定不能枚举,考虑别的方法。\(\\\)发现问题......
  • 扩展条件格式的应用范围
    问题: 应用于某一单元格的条件格式扩展到其他单元格,假设带条件格式的单元格为E1,需要扩展至E2:E12。 方法1:格式粘贴选取E1》复制》选取E1:E12》粘贴》选择性粘贴》......
  • 5 个不那么著名的 VS 代码扩展
    5个不那么著名的VS代码扩展VSCode是最流行和广泛使用的代码编辑器之一。VSCode最好的部分是它的灵活性和可扩展性。有数以百万计的开发人员为vscode开发扩展......
  • 数据类型扩展及面试题讲解
    数据类型扩展及面试题讲解importjava.math.BigDecimal;​publicclassdemo03{  publicstaticvoidmain(String[]args){    //整数拓展 进制二进......
  • spring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性【解决方案】
    问题D:>java-jarspring-boot-01-helloworld-1.0-SNAPSHOT.jarspring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性在这里有一个问题就是主清单属性是什么?......
  • PHP扩展之Yaconf
    这个是继鸟哥出品的yaf,yar之后的又一个好用的工具. Yaconf配置管理工具具体可以看鸟哥的文档: https://www.laruence.com/2015/06/12/3051.html  Yaconf的特点:......
  • HTML标签属性大全
    最常见的HTML标签属性⼤全,和⼤家分享⼀下: <!>字体效果 <h1>...</h1>标题字(最⼤) <h6>...</h6>标题字(最⼩) <b>...</b>粗体字 <strong>...</strong>粗体字(强调......
  • 用C++ 编写QML 扩展
    用C++编写QML扩展Qt,QML,QtQuick这是关于用C++来扩展QML的教程。源文:WritingQMLExtensionswithC++QtQML模块提供了一系列API以实现通过C++来扩展QML。可以编写扩......
  • Vue-属性传值
    属性传值所谓的属性传值,就是父组件通过绑定属性的方法,然后子组件通过props来获取父组件的值,而属性传值的方法有两种形式:第一种:具体的一个值(字符串,数值,布尔型)传......