我正在使用最新的 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
当我尝试从该数据中获取时,我做错了什么吗?
另一种可能性是我的 C++ 识别软件做错了什么,但我不会在这里向您展示该代码(抱歉,它受版权保护)。
或者我没有_resultImages
正确传递给nativeDetect
.