
大概就这么个意思,我两年前用了下,具体也解释不清楚,欢迎指点交流,反正就是有一个需求需要多代理回调,这种IM框架通常有这种方法
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]
关于为什么不用通知,这里面有很多渊源。大概介绍下,就是代理用的协议仿佛是一个“接口文档”,别人点进去协议,大概就知道怎么用了。如果XMPP设计成通知,则必须写一份文档详细告诉别人,哪个通知的名字是干什么的,调用者好对应接收,不太好处理
第二个问题就是写这篇文章目的,讲解下怎么实现多代理,也算是自己的一个备份,万一遇到这种需求呢
用数组接收,数组由管理类强引用,一般这种管理类会是单例类一直存在运行过程中,数组又强引用代理,最终会导致所有代理都没法释放
然后看到有些文章介绍到NSPointerArray,这个应该可以,好多文章都介绍了,我比较懒没有尝试
当时不知道再哪搜的资料,提到用中间桥接类。感觉这个实现很巧妙,而且都是熟悉的API,我自己实现了一下,发现确实很完美的实现需求
DemoClass.h
可以把这个DemoClass当成管理类,由他回调他所有的代理,我们会在一开始把它的实例保存在AppDelegate中或者或者其他便于找到的管理类
DemoClass.m
这样就OK了,将三个VC作为代理加进去,延迟10秒后都可以收到回调。
add进去作为代理期间,由桥接类弱引用该VC,如果这个VC,pop出去,那么就会直接释放,回调时,遍历数组桥接类对象的delegate属性为nil,就不会触发回调。
所有的vc以及这个管理类自身,都可以正常释放。代理可以收到对应的回调,以及传过来的参数~
demo项目链接
打开设置--通用--辅助功能-Assistive touch 辅助功能中的AssistiveTouch 这个功能打开后,在iPhone的界面上会浮现出一个小方块,点击它会d出四个功能菜单。这个小方块可以随着不同程序的开启和关闭在屏幕四周的八个位置自由移动,避免“碍事”的情况,也可以手动调节。 AssistiveTouch设置 我们先从最简单的说起,最下面的“主屏幕”我们无需赘述,苹果终于在系统中内置了一个虚拟home键,并且它还支持双击d出多任务栏。有了它,那些纠结于home键易损坏又不能越狱的朋友们终于可以解脱了。 AssistiveTouch功能界面 左侧的“设备”也不难理解点击后会出现在屏幕上浮现出一组功能按键,有了它们,用户无须再使用机身左侧的就能调节音量,或者锁定屏幕等。 AssistiveTouch功能界面 AssistiveTouch前两个功能都是关于实体键向虚拟件转换的,下面这两个功能都与多点控制有关。 最上面的“手势”,是让用户用一根手指达到多个手指滑点屏幕的效果,点击一下,会有多个手指的触点出现在屏幕上,你只需要用一根手指就可以进行原来需要多个手指的 *** 作。 AssistiveTouch手势界面 最右侧的“个人收藏”实际是上面手势功能的扩展,它允许用户事先录制好一个动作,然后用一根手指点一下屏幕就能实现(比如玩游戏时可以很快的放大招)。 AssistiveTouch个人收藏 AssistiveTouch功能是归在辅助功能里,新浪数码认为,一般情况下,最后这两个功能对用户来说用处并不太大,它们或许只属于部分有障碍的人士使用。 我用的也是3,我的机器这个功能可以开启正常使用。苹果代理ip设置方法:1、在设备中使用IP海IP代理。
2、设置代理的网络类型,然后设置相关IP代理线路。
3、连接后打开浏览器输入IP地址,出现的结果就是当前更换好的IP详细。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)