0

好的,我完全被卡住了,想知道是否有人能指出我犯的明显错误。

我在项目中使用 Simperium(开发分支),如果用户关闭身份验证窗口,我希望在我的主 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");

}

但是,这没有被调用,我不知道为什么???

有人知道我在这里缺少什么吗?

谢谢

加雷斯

4

2 回答 2

1

万一其他人遇到这个问题,如果不在 simperium.h 中实现自定义委托方法并让您的 AppDelegate.ha 成为它的委托,就无法做到这一点。

在 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;

干杯

加雷斯

于 2013-08-05T15:31:03.577 回答
0

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

感谢您帮助我们改进 Simperium!

于 2014-01-09T16:35:50.350 回答