我试图在iOS设备上运行MQTT客户端,以便与MQTT服务器通信。 所以我实现了这段代码,并成功在模拟器上运行。
@interface SensorListener() <HTTPServerDelegate>
@property (strong, nonatomic) MQTTSession *mqttSession;
...
@end
@implementation SensorListener
- (void)startMQTTListener {
...
self.mqttSession = [[MQTTSession alloc] init];
...
}
它是在真实设备上构建的,没有任何问题。但是实际的iOS设备上存在运行时错误。
self.mqttSession = [[MQTTSession alloc] init];
当我调试此代码时,未调用MQTTSession初始化方法。因此,在此命令之后,self.mqttSession保持为零,这与模拟器中不同。我不明白为什么它不能仅在真实设备中工作。
MQTT客户端代码(包括MQTTSession类)来自开源代码。 https://github.com/novastone-media/MQTT-Client-Framework
在模拟器和真实设备中,测试环境均为iOS 12。我同时测试了iPad和iPhone,但效果都不佳。