更改MGTwitterEngine的委托
我已经设置并使用扩展类MGTwitterEngine通过xAuth成功登录,我的问题是如果我想将它传递给另一个视图控制器,我该如何更改委托类,因为它是某种弱引用
@interface MGTwitterEngine : NSObject { __weak NSObject *_delegate;
我最好把它包装成一个单独的类并且以这种方式传递,每次登录似乎有点过分,或者我错过了分享这个对象的一种非常明显的方式
目前我已经向MGTwitterEngine添加了一个setDelegate方法,但感觉好像我在不必要地对抗框架
如果您在多个对象之间共享引擎,那么您可能希望让其他对象/单例包装引擎并充当其唯一委托。 如果您已经完成了数据库编程,那么可以将其视为数据库连接 – 您可能不会让每个视图控制器创建自己的数据库连接。 相反,您将创建一些由视图共享的数据管理器对象,并可能抽象出一些DB内部。
如果不同的视图控制器处理不同的任务 – 例如登录,查找用户,查询消息等,那么包装器中的委托方法应该能够将响应传递给适当的视图控制器。
如果您有不同的视图控制器调用相同的方法(如果是,为什么?),您仍然可以将响应路由回相应的视图控制器。 正如MGTwitterEngine文档所说, “每个Twitter API方法都返回一个NSString,它是该连接的唯一标识符。” 您只需将对象(视图控制器)或块作为额外参数传递给每个包装方法。 当包装器发送响应时,您可以将twitter id字符串和此对象/块缓存在可变字典中,然后在处理响应时查找缓存中的连接ID。
实际上,你可以。 代表,只不过是MGTwitterEngine中的一个变量。 只需在下一个视图控制器中添加一个实例,添加正确的标头和inplementation调用。 在设置新视图控制器集后:
nextViewController._mgTwitterEngine = self.mgTwitterEngine; nextViewController.mgTwitterEngine.delegate=nextViewController;
然后调用nextViewController。 返回时,请不要忘记将委托设置回原始视图控制器(在viewDidAppear或viewWillAppear上)
希望有所帮助…祝您好运!
在委托中使用NSNotifications。
使视图控制器在您希望委托添加观察者的位置。 让MGTwitterEngine的委托方法发布通知。
- Facebook连接后对话框文本?
- 某些iPad无法安装企业应用程序
- 如何结合两个UIDatePickers的日期和时间?
- CoreBluetooth:无法findiPad
- iOS,退出后台时重新启动animation
- initWithNibName,awakeFromNib和viewDidLoad的描述?
- instantiateInitialViewController和instantiateViewControllerWithIdentifier之间有什么区别?
- 在ViewDidLoad方法中,UIViewController.View.Window为null
- iOS – UITextView禁用滚动,但启用触摸