socketscan SDK を目的の C iOS アプリと統合しようとしています。scanapisdk をダウンロードし、プロジェクトのメイン フォルダー内に scanapisdk のコピーを作成しました。ファイルとライブラリ参照を Xcode プロジェクトに追加しました。アプリをコンパイルしてビルドします。デバイスで実行します。次のコードは、数年間問題なく動作しています。
mファイルでグローバル変数として宣言された定数 NSString があります
NSString *const kSymbology = @"シンボル";
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] など) が有効な場合、アプリがクラッシュすることがわかりました。
それは、SDK のインストールに CocoaPods を使用しないことに関連していますか?