• tp官方网站下载app

tpwallet官方app下载 详解iOS中跨页面状态同步方案比较

发布日期:2025-05-05 10:32    点击次数:187

由于团队希望项目能够去 CoreData 化,而以往状态同步都是依赖于 CoreData 的NSFetchedResultsController。因此去 CoreData 则必须寻找一种替代方案来进行状态同步。 NotificationCenter 状态同步实际是一对多的场景,也就是一个事件可以被多个观察者监听到。而苹果的系统框架自带的 NotificationCenter 正是用来适配这种场景,并且其也是被系统框架本身及我们开发者大面积使用的。用法如下: 定义通知名字,以及需要额外传递信息的

  • 由于团队希望项目能够去 CoreData 化,而以往状态同步都是依赖于 CoreData 的NSFetchedResultsController。因此去 CoreData 则必须寻找一种替代方案来进行状态同步。

    NotificationCenter

    状态同步实际是一对多的场景,也就是一个事件可以被多个观察者监听到。而苹果的系统框架自带的 NotificationCenter 正是用来适配这种场景,并且其也是被系统框架本身及我们开发者大面积使用的。用法如下:

    定义通知名字,以及需要额外传递信息的 key 基于 target-action 的方式注册通知

    实现监听通知的方法

    发送通知,可以传递发送通知的对象(object)以及一些额外的信息(userInfo)

    移除注册的通知

    当然 NotificationCenter 也提供了一种更加便利基于 block 的方式注册监听通知,其将 2,3 两个步骤整合为 1 个步骤。

    整体流程很清晰,简单易用,但是却有一个严重的缺点 —— 弱类型。我们接收到的是一个NSNotification对象。

    假设我们需要传递一个关注状态改变的信息,那么需要包含关注更改后的状态以及被关注者的 ID。那么我们需要从 userInfo 中取出所需要的值:

    也就是说接收通知的一方一般需要要查看文档才知道怎样从 userInfo 取值,取的值的类型又是什么。这对于使用是极为不方便的。

    SwiftNotificationCenter

    SwiftNotificationCenter是一种面向协议的通知中心方案。使用方式如下:

    定义协议

    基于协议注册通知

    实现协议方法

    发送通知

    移除注册的通知

    我们可以看到,tp官方正版下载其基于协议的方式解决了弱类型的问题, tp官方下载安卓最新版本并且其通过AssociatedObject实现了通知的自动移除。但其也存在着扩展性较差的问题。

    依然是关注改变的场景,假如随着业务的发展,有的地方需要知道关注后是否为互关的状态,那么又需要增加一个字段来标识。因此我们需要修改协议,增加参数,且由于其不是必须传递的参数,因此是 optional 类型。

    如果在该类型通知被广泛应用的场景,那么需要修改的地方就尤其多了。这显然也是难以接受的。

    EventBus

    EventBus 在安卓中被广泛地应用,其流程如下图所示:

    图片来源:EventBus

    使用方式如下:

    定义事件

    https://www.heartsys.cn

    注册事件

    实现监听事件的方法

    发送事件

    移除事件的注册

    我们可以看到, EventBus 也是强类型的。

    假如依然关注的场景,需要增加 followingEachOther 参数,那么我们只需要在 TPFollowingChangedEvent 中增加 followingEachOther 参数即可。如下所示:

    因此使用 EventBus 实现了以下需求:

    强类型 可扩展

    EventBus 同 NotificationCenter 都是基于 target-action 的方案,但是我们不难将其扩展为支持 block 监听的方式,并且同样让其能够自动移除事件的注册。类似于如下的使用方式:

    基于 OC, 我实现了一个小巧但比较全面的 EventBus 供参考:TPEventBus。

    最后

    我们可以看到,一对多场景中观察者模式的应用流程都大同小异,但是如何更好用确是值得深思的。当然以上也只是我在一些使用场景上的思考,肯定会欠缺考虑,欢迎拍砖:blush:。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。



推荐资讯

  • tpwallet官方网站 TP钱包链上数据变现秘籍,揭秘隐藏收益!

    你有没有想过,自己在TP钱包里存的数字资产,不只是“钱”那么简单?其实,你的链上数据背后,可能藏着意想不到的“隐藏收益”! 首先,我们来简单说说什么是“链上数据”。当你在TP钱包里进行交易、转账、持有代币时,这些操作都会被记录在区块链上。这些数据就像是你的一份“数字身份证”,里面包含了你的交易历史、资产分布、甚至是你参与过的项目。 那么,这些数据怎么才能“变...

  • TP钱包的多重签名功能解析 TP钱包品牌合作盈利秘籍,轻松赚大钱!

    你有没有想过,用一种简单的方式赚钱?其实,现在有很多机会就在我们身边,比如和TP钱包这样的平台进行品牌合作,就能轻轻松松赚到一笔额外收入。今天我们就来聊聊这个“轻松赚大钱”的方法。 首先,什么是TP钱包?它是一个安全、便捷的数字钱包应用,用户可以用它来存储和管理加密货币。而品牌合作,就是一些公司或商家愿意和TP钱包合作,推广他们的产品或服务。作为合作伙伴,你...

  • TP钱包的多重签名功能解析 TP钱包安全教育:教你识别网络风险,防骗防丢钱!

    现在越来越多的人开始使用TP钱包进行数字货币的存储和交易。但与此同时,网络诈骗、钓鱼网站、虚假信息也越来越多,稍有不慎就可能损失钱财。所以,了解一些基本的安全知识,对保护自己的资产非常重要。 首先,我们要知道,TP钱包本身是安全的,但安全的关键在于用户自己。不要随便点击陌生链接,尤其是那些看起来像是“中奖”、“系统升级”或者“账户异常”的信息。这些很可能是骗...

  • 如何利用TP钱包参与新的投资项目? TP钱包安全协议揭秘:用户隐私如何被严防死守?

    在如今这个数字化时代,越来越多的人开始使用数字钱包来管理自己的资产,TP钱包就是其中一款非常受欢迎的工具。但很多人可能会担心:我的钱和隐私真的安全吗?今天我们就来聊聊TP钱包是怎么保护用户隐私的。 首先,TP钱包采用了“加密技术”来保护用户的账户信息。简单来说,就是把你的密码、交易记录等数据用一种特殊的算法“变”成一串乱码,别人看不懂,也很难破解。这就像是给...

  • tpwallet官方网站 TP交易所数字货币提现到TP钱包全攻略:安全与效率大揭秘

    TP交易所数字货币提现到TP钱包全攻略:安全与效率大揭秘 在如今越来越多人参与数字货币交易的背景下,如何安全、高效地将币从交易所转到自己的钱包,成为很多用户关心的问题。今天我们就来聊聊,如何把TP交易所里的数字货币提现到TP钱包,简单又实用。 首先,我们要明确一个概念:TP交易所和TP钱包是两个不同的平台。TP交易所是用于买卖数字货币的地方,而TP钱包则是用...