quickBlox iOS SDK存在非常奇怪的代理问题

quickBlox iOS SDK存在非常奇怪的代理问题,ios,objective-c,ios7,delegates,quickblox,Ios,Objective C,Ios7,Delegates,Quickblox,我目前正在我的应用程序中使用新的quickBlox 2.0 SDK。我正在iphone5s(i0s8)和iphone4s(iOS7.1.2)上进行测试 我在两部手机上运行相同的代码。学员们每次都会被正确地调用iphone 5s版本。但是,当我在iphone 4s上执行相同的操作时,代表们从未被呼叫过 有人知道这是什么原因吗 在日志中,我可以清楚地看到我正在获取数据: QBChat/didReceiveMessage: <message xmlns="jabber:client" type

我目前正在我的应用程序中使用新的quickBlox 2.0 SDK。我正在iphone5s(i0s8)和iphone4s(iOS7.1.2)上进行测试

我在两部手机上运行相同的代码。学员们每次都会被正确地调用iphone 5s版本。但是,当我在iphone 4s上执行相同的操作时,代表们从未被呼叫过

有人知道这是什么原因吗

在日志中,我可以清楚地看到我正在获取数据:

 QBChat/didReceiveMessage: <message xmlns="jabber:client" type="qbvideochat_acceptCall" from="1645510-14896@chat.quickblox.com" to="1645761-14896@chat.quickblox.com" id="1441282327"><extraParams xmlns="jabber:client"><sessionID>434152105.631015</sessionID><callType>1</callType></extraParams></message>
[QBVideoChat didReceiveVideoMessage:] -> Message: <message xmlns="jabber:client" type="qbvideochat_acceptCall" from="1645510-14896@chat.quickblox.com" to="1645761-14896@chat.quickblox.com" id="1441282327"><extraParams xmlns="jabber:client"><sessionID>434152105.631015</sessionID><callType>1</callType></extraParams></message>, MessageType: qbvideochat_acceptCall
[QBVideoChat didReceiveVideoMessage:] -> Accepted call
QBChat/didReceiveMessage:434152105.6310151
[QBVideoChat didReceiveVideoMessage:]->消息:434152105.6310151,消息类型:QBVideoChat_acceptCall
[QBVideoChat DiReceiveVideoMessage:->已接受呼叫

它在模拟器中的行为如何?您可能应该尝试看看是iOS版本还是设备类型造成了差异


您能调试一下代理是否为零吗?

我终于找到了问题的原因

问题来源:

在viewcontroller 1中,在ViewDid中,我设置了[QBChat实例].delegate=nil

在viewcontroller 2中,我在ViewDidInstance中设置[QBChat instance].delegate=self

解决方案:

删除ViewDidDemove[QBChat实例].delegate=nil(在viewcontroller 1中)

我错误地认为b/c[QBChat实例]是一个单例,它可以在下一个VC中重置


这对我来说非常棘手,因为原始代码在iOS 8上运行得非常完美。

嘿,谢谢你的建议。似乎在ios8上正确调用了委托方法,但在ios7.1中没有调用。您知道是什么导致了这种情况吗?调试以查看委托是否为零将是一个很好的步骤。如果出于某种原因,它是nil,那么您没有收到消息的原因是因为没有对象可以传递它们。如果它不是零,那么其他一些奇怪的事情正在发生。如果看不到更多的代码,这很难诊断。你可能想看看是否有一个专门针对该框架的论坛(QBVideoChat?),谢谢Kirk——你的建议为我指明了正确的方向。