我无法将NSData
转换为UIImage
。
我从设备摄像头捕获图像,并将此图像转换为NSData
,以使用BLOB数据类型将其存储在SQLite中。
图像数据已成功存储在数据库中,但当我检索图像数据时,应用程序崩溃。
我使用此代码:
NSData *tempData = [[NSData alloc] init];
tempData = [[arr_img objectAtIndex:indexPath.row] valueForKey:@"Image"];
UIImage *img = [[UIImage alloc] initWithData:tempData];
并收到此错误:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFString bytes]:无法识别的选择器发送到实例0x5f8c000'
我做错了什么?
答案 0 :(得分:1)
你可以这样做
NSData *data = yourData;
UIImage *image = [UIImage imageWithData:data];
或
NSData *data = yourData;
UIImage *image = [[UIImage alloc] initWithData:data];
[image release];
如果它确实有效意味着你的NSData值可能存在一些概率
答案 1 :(得分:1)
将图像插入SQLite:
sqlite3_bind_blob(compiledStatement,i, [image_data bytes], [image_data length], SQLITE_TRANSIENT);
从SQLite获取图片:
NSData *dataForCachedImage = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStatement, i) length: sqlite3_column_bytes(compiledStatement, i)];
UIImage *img = [UIImage imageWithData:dataForCachedImage];
这里'i'是您的数据库列号