最新の SDK を使用して iOS 5.0 以降のアプリを開発しています。
私のアプリには C++ 画像認識ソフトウェアがあり、この C++ 関数によって認識された画像を保存しようとしています。
認識された画像を保存するためのこの配列があります:
int _detectedImages[NSMaxNumDetections ][NSPatchSize * NSPatchSize];
C++ 関数を次のように呼び出します。
numberOfDetections = nativeDetect(_resultImages);
そして、次のコードで、データを から に変換しようとし_detectedImages
ますUIImage
。
for (int index = 0; index < numberOfDetections; index++)
{
if (_resultImages[index] != nil)
{
NSData* imageData = [NSData dataWithBytes:&_resultImages[index] length:sizeof(_resultImages[index])];
NSLog(@"##### Image data size: %d", [imageData length]);
UIImage* newImage = [UIImage imageWithData:imageData];
_lastDetectedSignImages[index] = newImage;
}
}
ログで私はこれを得る:
#### Image data size: 2304
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM setObject:atIndex:]: object cannot be nil'
*** First throw call stack:
newImage
nil ですが、imageData
データがあります。
UIImage
そのデータからを取得しようとすると、何か問題がありますか?
もう 1 つの可能性は、私の C++ 認識ソフトウェアが何か問題を起こしている場合ですが、ここではそのコードを表示しません (申し訳ありませんが、著作権で保護されています)。
_resultImages
または、に正しく渡していませんnativeDetect
。