You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成DriveQuant iOS SDK调用initializeWithTripListener报unrecognized selector错误

错误原因
  • 核心原因:你调用initializeWithTripListener:appLaunchOptions:时传入的self(即AppDelegate实例)未遵守DKTripListener协议,也未实现该协议要求的必需方法,导致运行时找不到对应selector触发崩溃,编译期的警告也是因为该参数要求的协议类型不匹配。
  • 次要排查点:若已实现协议仍报错,大概率是项目编译配置缺失-ObjC链接参数,导致SDK中定义的ObjC类别未正确加载,方法无法被识别。

相关报错截图参考:
警告截图
报错截图

修复步骤
  1. 给AppDelegate添加协议声明
    在AppDelegate.m的类扩展中添加协议遵守声明,示例代码:
@interface AppDelegate () <DKTripListener>
@end
  1. 实现DKTripListener协议的必需方法
    在AppDelegate.m的实现部分添加协议要求的所有回调方法,参考实现:
#pragma mark - DKTripListener
- (void)tripStarted {
    // 行程开始回调逻辑
}

- (void)tripFinishedWithTrip:(DKTrip *)trip {
    // 行程结束回调逻辑,可获取行程分析数据
}

- (void)tripCancelled {
    // 行程取消回调逻辑
}

- (void)tripAnalysisErrorWithError:(DKTripAnalysisError)error {
    // 行程分析错误回调逻辑,可根据错误码处理异常
}
  1. 检查项目链接配置
    打开项目Build Settings,搜索Other Linker Flags,确认已添加-ObjC参数,如果没有则手动添加后重新编译。

  2. 验证SDK版本
    确认你集成的DriveQuant SDK版本和开发文档匹配,旧版本SDK的初始化方法、协议要求可能存在差异,建议升级到最新稳定版本后再测试。

内容的提问来源于stack exchange,提问作者DiveDive

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:18:01