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

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(使用前将#替换为@)

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

  • SwiftUI 意外地自动弹出 NavigationLink

    我有一个简单的用例 其中一个屏幕使用 NavigationLink 推送另一个屏幕 iOS 14 5 有一个奇怪的行为 即推送的屏幕在被推送后立即弹出 Code NavigationLink destination EmptyView Em
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • 如何在单击事件时向数组添加值

    我想要实现的是读取单击事件的值并将其保存到数组中 我的代码 a href class hotel Add to favourites a var hotelName hotel on click function e e preventDe
  • Swift:设置协议的可选属性

    如何设置协议的可选属性 例如 UITextInputTraits 有许多可选的读 写属性 当我尝试以下操作时 出现编译错误 无法分配给 textInputTraits 中的 keyboardType func initializeTextI
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • 在 iOS 7 中 viewForHeaderInSection 部分是从 1 开始而不是从 0 开始

    我正在处理UITableView在我的项目中 这个项目是在 Xcode 4 5 中创建的 现在我正在使用 Xcode 5 所以我的问题是何时在 iOS 6 中运行我的项目 viewForHeaderInSection方法部分从 0 开始没问
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • Xamarin - 错误:dsymutil 退出,代码为 72

    最近升级到 VS for Mac 8 10 21 在构建应用程序时 我得到 Xamarin Shared targets 3 3 Error dsymutil exited with code 72 这是 Xcode 13 3 的情况 完整
  • 将类型传递给通用 Swift 扩展,或者理想情况下推断它

    说你有 class Fancy UIView 你想找到所有兄弟姐妹Fancy意见 没问题 https stackoverflow com q 37232743 294884 for v UIView in superview subview
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • 关闭捕获上下文 Swift

    当我尝试更改闭包中的变量时出现此错误 A C function pointer cannot be formed from a closure that captures context 是否有解决方法或者仍然可以更改闭包内的变量 My C
  • 删除近排序数组中未排序/离群元素

    给定一个像这样的数组 15 14 12 3 10 4 2 1 我如何确定哪些元素乱序并删除它们 在本例中为数字 3 我不想对列表进行排序 而是检测异常值并将其删除 另一个例子 13 12 4 9 8 6 7 3 2 我希望能够删除 4 和
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何在 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