美文网首页
[Swift] 扩展存储属性

[Swift] 扩展存储属性

作者: 巨馍蘸酱 | 来源:发表于2023-01-05 16:58 被阅读0次

扩展有多好用, 谁用谁知道 (一定要规范使用, 约定优于配置)

一般都是扩展方法或计算属性, 不能直接扩展存储属性

扩展存储属性

extension UIImageView {

    private struct definestruct {
        static var defineSection: Int = 0
        static var defineItem: Int = 0
    }

    var definesection: Int? {
        get {
            return objc_getAssociatedObject(self, &definestruct.defineSection) as? Int
        }
        set(value) {
            guard let num: Int = value else { return }
            objc_setAssociatedObject(self,
                                     &definestruct.defineSection,
                                     num,
                                     objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }

    var defineitem: Int? {
        get {
            return objc_getAssociatedObject(self, &definestruct.defineItem) as? Int
        }
        set(value) {
            guard let num: Int = value else { return }
            objc_setAssociatedObject(self,
                                     &definestruct.defineItem,
                                     num,
                                     objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }
}

使用

let imgView = UIImageView()
imgView.definesection = indexPath.section
imgView.defineitem = indexPath.item

相关文章

  • Swift进阶(三)--- 属性

    Swift的属性 在swift中,属性主要分为以下几种: 存储属性 计算属性 延迟存储属性 类型属性 一:存储属性...

  • Swift 属性

    Swift 属性 在Swift中属性主要分为存储属性、计算属性、延迟存储属性、类型属性这四种,并且Swift还提供...

  • swift 扩展属性的方法

    原理:由于swift扩展不能添加存储属性,所以考虑以计算属性获取另一对象的存储属性,该对象通过动态绑定给原对象 1...

  • [Swift]为Extension添加存储属性

    众所周知, 在Swift的扩展(Extension)中只能添加计算属性, 但是有时候, 我们需要添加存储属性的话,...

  • 如何在Swift扩展中添加存储属性

    .一般而言,swift的扩展Extension只能添加计算属性,不能添加存储属性。当然,如果利用run time也...

  • OC的@property与Swift的存储属性/计算属性类比

    Swift中的计算属性/存储属性与OC中的@property   Swift中引入了存储属性、计算属性的概念,存储...

  • SwiftProperty Swift3.0 属性

    Swift Peoperty Swift中有下列几种属性存储属性(Stored properties):存储实例的...

  • 浅谈 Swift 中的属性(Property)

    Properties in Swift 前言 Swift 中的属性分为存储属性与计算属性,存储属性即为我们平时常用...

  • Swift:基础(二十)属性

    Swift 属性 Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性和计算...

  • Swift--属性

    Swift属性 存储属性(要么是常量(let 修饰)存储属性,要么是变量(var 修饰)存储属性) 计算属性(顾名...

网友评论

      本文标题:[Swift] 扩展存储属性

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