如何在iOS中的XMPPFramework中实现发送好友请求的方式?

时间:2013-12-29 07:46:25

标签: ios xmppframework

我已经在 MainAppDelegate.m 中使用以下内容找到了在XMPPRoster中接受订阅请求的方法:

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence
    {
     NSString *presenceType = [presence type];
     if  ([presenceType isEqualToString:@"subscribe"]) {
       [xmppRoster acceptPresenceSubscriptionRequestFrom:[presence from] andAddToRoster:YES];
   } 

但是,我无法通过点击按钮发送好友请求。我面临的主要问题是我的新朋友添加表单位于 ViewController.m 类中,而不是 MainAppDelegate.m 。如何从 ViewController.m 访问XMPPRoster方法?我是否必须重新声明XMPPRoster的对象,或者我可以以某种方式重用已在 MainAppDelegate.m 文件中实例化的对象?

1 个答案:

答案 0 :(得分:1)

重用已经存在的XMPPRoster对象应该足够了。为此,您可以为ViewController.m编写自定义init方法,例如

    - initWithRoster:(XMPPRoster *)roster
    {
       self = [super initWithNibName:@"nibName" bundle:nil];
       ...
    } 

然后将名单分配给ViewController的实例变量或属性。然后,可以在加载和加载视图时访问XMPPRoster对象。

或者,您可以向ViewController添加XMPPRoster属性,并在实例化视图控制器之后但在显示控制器之前从MainAppDelegate分配名单对象。但我更喜欢第一种解决方案。