gpt4 book ai didi

iphone - 更改 MGTwitterEngine 的委托(delegate)

转载 作者:可可西里 更新时间:2023-11-01 04:28:18 25 4
gpt4 key购买 nike

我已经设置并使用 MGTwitterEngine 的扩展类通过 xAuth 成功登录,我的问题是如果我想将它传递给另一个 View Controller ,我该如何更改委托(delegate)类,因为它是某种弱引用

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

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

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

最佳答案

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

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

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

关于iphone - 更改 MGTwitterEngine 的委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com