我正在尝试将 socketscan SDK 与我的目标 C iOS 应用程序集成。我下载了scanapisdk,在我的项目主文件夹中制作了scanapisdk的副本。我将文件和库引用添加到 Xcode 项目。编译并构建应用程序。在设备上运行它。以下代码几年来一直没有问题。
我在 m 文件中有一个常量 NSString 声明为全局变量
NSString *const kSymbology = @"Symbology";
并在 h 文件中声明为 extern
extern NSString *const kSymbology;
然后在数据库类中有这个代码片段
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
const char *Symbology = (const char*)sqlite3_column_text(statement, 0);
strSymbology = [NSString stringWithUTF8String:Symbology];
[dict setValue:strSymbology forKey:kSymbology];
[symbologies addObject:dict];
[dict release];
代码在这一行崩溃 [dict setValue:strSymbology forKey:kSymbology];
当我将其更改为 [dict setValue:strSymbologyAlias forKey:@"Symbology"]; 该应用程序不会崩溃。
这对我来说没有意义。似乎错误在其他地方,并且偶然显示在这里。我添加到项目中的唯一新内容是对 socketScan 文件和库的引用。我什至不调用 SDK 中的任何方法。我注释掉了 ScanApiHelper.mm 文件中的所有方法,现在应用程序不会崩溃。我开始放回 ScanApiHelper.mm 中的一些方法,我发现当任何提到 SktClassFactory 的行(例如 [SktClassFactory createScanObject])处于活动状态时,应用程序就会崩溃。
这可能与不使用 CocoaPods 安装 sdk 有关吗?