Simperium,获取AuthManager的委托通知

时间:2013-08-04 17:10:51

标签: objective-c xcode cocoa simperium

好吧,我完全陷入困境,并且想知道是否有人能够指出我所犯的明显错误。

我在项目中使用Simperium(dev分支),如果用户取消认证窗口,我想在我的主AppDelegate中收到通知。

现在在SPAutheticationManager.m文件中有以下代码:

- (void)cancel {
    DDLogVerbose(@"Simperium authentication cancelled");

    if ([delegate respondsToSelector:@selector(authenticationDidCancel)])
        [delegate authenticationDidCancel];
}

我设置了一个断点,当窗口被解除时,这肯定会被调用。

现在,我已将SPAuthenticationDelegate添加到我的AppDelegate中的实现中,然后将以下代码添加到AppDelegate.m

-(void)authenticationDidCancel {
    NSLog(@"Authetication Cancelled");

}

但是,这并没有被调用,我无法理解为什么???

任何人都知道我在这里失踪了什么?

由于

加雷

2 个答案:

答案 0 :(得分:1)

如果其他人遇到这个问题,如果没有在simperium.h中实现自定义委托方法并且让你的AppDelegate.h成为它的委托,就没有办法做到这一点。

在simperium.h中

- (void)didCancelAuth;

然后在simperium.m authenticationDidCancel方法中添加:

if ([delegate respondsToSelector:@selector(didCancelAuth)]) {
    [delegate didCancelAuth];
}

然后将appDelegate设置为simperium的委托并添加:

- (void)didCancelAuth
{
    //auth has been cancelled
}

您还需要通过执行类似

的操作来确保您的appdelegate是代表
self.simperium.delegate = self;

干杯

加雷

答案 1 :(得分:0)

只是想让您知道我们刚刚添加了一个全新的“登录取消”委托方法(在此处提交:https://github.com/Simperium/simperium-ios/commit/5cae8a157786a48ffe1cc649f898341eb9cf51bf在开发分支中)。

感谢您帮助我们改善Simperium!