gpt4 book ai didi

ios - 每次打开 iOS 应用程序时都强制创建一个新的 Quickblox session

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:46 26 4
gpt4 key购买 nike

我正在使用 Quickblox iOS SDK 2.0.12

我一直在按照有关 Quickblox 身份验证和授权的说明进行操作 here .

我调用 QBRequest createSessionWithSuccessBlock:,然后在它的完成 block 中调用 QBRequest signUp:,然后我在下一个完成 block 。

根据上面的链接,在完成所有这些操作后,我现在应该有一个 Quickblox User Session。这一切都完美运行,所有调用都成功,我可以看到用户现在位于 Quickblox 管理面板中。

完成此操作后,如果我发出 Quickblox 请求,它们将正常工作。唯一奇怪的是 [[QBSession currentSession] currentUser] NSLogs(null)

无论如何,如果我停止在模拟器上运行该应用程序,然后在 10 分钟后再次运行该应用程序,我会检查持久的自定义数据,以便我可以查看用户是否已经注册。当用户注册后,我将他们带到应用程序中,而不是让他们重新注册或登录。

现在,如果我尝试向 Quickblox 发出任何请求,我会收到以下异常:

Terminating app due to uncaught exception 'BaseServiceException', reason: 'You have missed the authorization call.
Please insert following code inside your application
[QBRequest createSessionWithSuccessBlock:errorBlock:];
Before any other code, that uses our service, but after setup credentials. Thank you.'

我不明白为什么它说我需要创建一个 session ,而我在用户第一次注册时已经创建了一个 session 。我知道 session 每 2 小时过期一次,但我正在快速测试它并且我总是收到此错误。

如果我 NSLog [QBSession currentSession] 我可以看到当前有一个 QBSession 对象,但是如果我尝试 NSLog 它的任何属性,如 sessionDetailssessionExpirationDatecurrentUser 它们都记录为 (null).

最佳答案

据我所知,只有当你使用这个方法时 - (void)startSessionForUser:(QBUUser *)user withDetails:(QBASession *)session expirationDate:(NSDate *)sessionDate ,你可以使用这个属性正确。但我从未使用过它。

为了重新创建 session ,我使用[QBConnection setAutoCreateSessionEnabled:YES],对于聊天,我将 QBUUser 保留在我的管理器中,进入前台后,我检查 XMPP 连接[[QBChat instance] isLoggedIn] 。也许它可以帮助你。

关于ios - 每次打开 iOS 应用程序时都强制创建一个新的 Quickblox session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27388204/

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