在数组中添加/删除元素时收到通知

2024-04-30

我想在从数组中添加/删除元素时收到通知。如果我们不是在谈论数组,例如要在字符串更改时收到通知,则 swift 中有一个很好的解决方案:

private var privateWord: String?
var word: String? {
    get {
        return privateWord
    }
    set {
        if newValue != "" {
            notifyThatWordIsChanged()
        } else {
            notifyThatWordIsEmpty()
        }
        privateWord = newValue
    }
}

当我向数组添加/删除元素时,我们能否获得类似的结果?


您可以创建类似类/结构的代理,它们将具有与数组相同的接口,将在场景下存储标准数组并代表存储数组进行操作。这是一个小例子:

struct ArrayProxy<T> {
    var array: [T] = []

    mutating func append(newElement: T) {
        self.array.append(newElement)
        print("Element added")
    }

    mutating func removeAtIndex(index: Int) {
        print("Removed object \(self.array[index]) at index \(index)")
        self.array.removeAtIndex(index)
    }

    subscript(index: Int) -> T {
        set {
            print("Set object from \(self.array[index]) to \(newValue) at index \(index)")
            self.array[index] = newValue
        }
        get {
            return self.array[index]
        }
    }
}

var a = ArrayProxy<Int>()
a.append(1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数组中添加/删除元素时收到通知 的相关文章

随机推荐

  • 如何在 Tensorflow 中计算 Spearman 相关性

    Problem 我需要计算 Pearson 和 Spearman 相关性 并将其用作张量流中的指标 对于皮尔逊来说 这是微不足道的 tf contrib metrics streaming pearson correlation y pre
  • 已安装 JDBC,但尝试连接到 Oracle 时出错

    扩展库附带的示例程序工作得很好 但是当我尝试连接到 Oracle 时 出现以下错误 读取关系数据时出错 加载连接 ojdbc14 时出错 加载 JDBC 驱动程序类 oracle jdbc Driver OracleDriver 时出错 如
  • 如何使用AJAX显示数据?

    大家好 我在 ajax 中面临一个问题 我想将此数据显示为 html 中的表格 我如何提取此数据并以 html 表格形式显示它 它只是一个虚拟数据 否则它有很多对象加上嵌套对象帮我 JSON 数据 FullName shahrushabh
  • 求 a/b mod c

    我知道这可能看起来像一个数学问题 但我刚刚在比赛中看到这个问题 我真的很想知道如何解决它 We have 一个 模c and b 模c 我们正在寻找商的值 a b mod c 有任何想法吗 在整数环中模C 这些方程是等价的 A B mod
  • r-project SixSigma ss.rr 在 `row.names<-.data.frame`(`*tmp*`, value = value) 中给出错误:'row.names' 长度无效

    我有下面的数据框 gt str luc data frame 19 obs of 4 variables driver Factor w 16 levels nr 1 nr 10 1 9 10 11 12 13 14 15 16 2 pos
  • SQL Server、C#:事务回滚超时异常

    我有一个奇怪的问题 我有一个 NET 程序 我的处理逻辑需要在 SQL Server 2005 数据库上进行长时间运行的事务 约 20 分钟 没关系 因为没有人并行访问数据库 当出现问题时 事务应该回滚 很少发生并且没有任何可见的模式 th
  • Java hibernate 找不到布尔值验证器

    我有一个服务方法尝试添加一个对象store 冬眠的方法 get 方法适用于此 DAO 和服务类 而添加方法则不起作用 在控制台中没有错误 UrlWhiteListDaoImpl urlDao MapperFacade mapper Auto
  • 棋子层次结构设计:继承与类型字段

    我有一个片段的基类 class piece 和一个包含派生对象的数组 piece board 8 8 优点 通过虚拟函数进行简洁的设计 缺点是 如果我必须在板上找到一块或比较一块 我必须恢复到动态铸造 或 typeid 它很丑陋 并且在发出
  • 为什么 com.ibm.jms.JMSTextMessage 类型的变量会打印截断的内容和省略号 (...)?

    我想了解为什么 com ibm jms JMSTextMessage 类型的变量在转换为字符串时会打印出截断的内容和省略号 我在 JMeter 的 JSR223 Sampler 中有以下代码 import com ibm msg clien
  • 如何设置通知在点击时自行清除?

    如何设置我的通知在点击时自行清除 我已经设置了autoCancel true 但这不起作用 My code Notification n new Notification Builder this setContentTitle Updat
  • UIScrollView停止减速

    在 iPhone 3 0 中立即停止 UIScrollView 减速的最佳方法是什么 我想保持 UIScrollView 的减速 直到它自然停止或用户执行某个操作 无论先发生什么 Thanks 未经测试的建议即将出现 当捕获按钮点击事件时
  • generate_presigned_post 中的 Boto3 InvalidAccessKeyId

    我正在使用 Python 的 Chalice 库创建 AWS Lambda 和 API 我的 AWS 凭证是使用 github 工作流程 aws actions 注入的 它能够chalice deploy 端点正在运行 并且正在完美部署到
  • 何时使用 BlockingCollection 以及何时使用 ConcurrentBag 而不是 List

    The 为什么这个 Parallel ForEach 代码会冻结程序 问题的接受答案 https stackoverflow com a 8365614 2031316建议将列表用法替换为并发包 http msdn microsoft co
  • 自定义半透明 Android ActionBar

    我一直在互联网上搜索 例如 Android 文档 此处的答案等 以寻找我认为相当琐碎的问题的答案 如何实现像中那样的半透明操作栏谷歌音乐 http coreylatislaw com wp content uploads 2011 07 g
  • JPA如何为@OneToMany关系的列添加唯一约束,例如用户名

    我有一个班级Site代表一个网站和一个类User A Site可以有多个Users class Site private int site ID OneToMany with a join table private List
  • 使用 STUN 打孔

    我目前正在尝试通过 Internet 发送 UDP 消息 并且必须为端点 A 和 B 都位于 NAT 后面 设置防火墙 为此 我想使用 STUN 服务器进行打孔 当 A 创建对 STUN 服务器的请求 例如 私有 85 1 1 12 600
  • 按预定义顺序进行 XSLT 节点转换

    如何使转换遵循 xml 节点顺序 xml文件是这样的
  • Objective C 视图到控制器通信

    在视图中接受用户输入然后将其传输到该视图的控制器的正确方法是什么 我知道通知中心是一种选择 但肯定有一种更优雅的方式将数据从视图传输到其控制器吗 非常感谢所有帮助 我总是接受答案 使用委托协议设计模式 或通过子类化目标操作UIControl
  • 通过ant编译jdk

    我想编译jdk文件以包含调试信息 我想使用 ant 因为它包含在我的 NetBeans 环境中 所以我做了以下操作 将 src zip 解压到 tmp 目录中 在我的 tmp 目录中创建了一个非常简单的 build xml 文件 一个默认目
  • 在数组中添加/删除元素时收到通知

    我想在从数组中添加 删除元素时收到通知 如果我们不是在谈论数组 例如要在字符串更改时收到通知 则 swift 中有一个很好的解决方案 private var privateWord String var word String get re