更改 MGTwitterEngine 的委托

2024-02-05

我已经使用 MGTwitterEngine 的扩展类通过 xAuth 设置并成功登录,我的问题是如果我想将其传递给另一个视图控制器,我如何更改委托类,因为它是某种弱引用

@interface MGTwitterEngine : NSObject <MGTwitterParserDelegate> {
__weak NSObject <MGTwitterEngineDelegate> *_delegate;

我是否最好将其包装到一个单例类中并以这种方式传递,每次登录似乎都太过分了,或者我是否错过了一种非常明显的共享此对象的方式

目前,我已经向 MGTwitterEngine 添加了 setDelegate 方法,但感觉好像我在不必要地与框架作斗争


如果您在多个对象之间共享引擎,那么您可能希望有一些其他对象/单例包装引擎并充当其唯一委托。如果您完成了数据库编程,那么请将其视为数据库连接——您可能不会让每个视图控制器创建自己的数据库连接。相反,您将创建某种由视图共享的数据管理器对象,并可能抽象出一些数据库内部结构。

如果不同的视图控制器处理不同的任务——比如登录、查找用户、查询消息等,那么包装器中的委托方法应该能够将响应传递到适当的视图控制器。

如果您有不同的视图控制器调用相同的方法(如果是这样,为什么?),您仍然可以将响应路由回相应的视图控制器。正如 MGTwitterEngine 文档所说,“每个 Twitter API 方法都会返回一个 NSString,它是该连接的唯一标识符。”您只需将一个对象(您的视图控制器)或一个块作为额外参数传递给每个包装的方法。当包装器发送响应时,您可以将 twitter id 字符串和此对象/块缓存在可变字典中,然后在处理响应时在缓存中查找连接 id。

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

更改 MGTwitterEngine 的委托 的相关文章

随机推荐