我在iOS中使用UIImagePickerControllerDelegate从图库或相机中获取图像它在iphone中的真实设备中工作正常但我可以在模拟器中使用这个东西,这样我就可以在sqlite DB文件中看到图像存储。 这是我在sqlite中存储图像的代码:
NSString *docsDir;
NSArray *dirPaths;
NSString *dbPath;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];
dbPath = [[NSString alloc]initWithString:[docsDir stringByAppendingPathComponent:@"clientId.db"]];
sqlite3_stmt *compiledStmt;
sqlite3 *db;
if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
NSString *insertSQL=@"insert into MESSAGE(MESSAGE,SEENTO) VALUES(?,'visitor')";
if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK){
// UIImage *image = [UIImage imageNamed:@"prem.png"];
UIImage *image = chosenImage;
NSData *imageData=UIImagePNGRepresentation(image);
sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT);
if(sqlite3_step(compiledStmt) != SQLITE_DONE ) {
NSLog( @"Error: %s", sqlite3_errmsg(db) );
} else {
NSLog( @"Insert into row id = %lld", (sqlite3_last_insert_rowid(db)));
}
sqlite3_finalize(compiledStmt);
}
}
sqlite3_close(db);
唯一的是我想从模拟器中选择图像,这样我就可以提取db文件并查看sqlite.db文件中存储的值。有没有办法选择图像表单模拟器,否则可以显示sqlite.db文件形式真正的iPhone设备。
答案 0 :(得分:0)
解决方案1 - 对于模拟器,您可以将源类型设置为photoLibrary或savedPhotosAlbum,
https://developer.apple.com/reference/uikit/uiimagepickercontroller
然后,您需要找到模拟器文档目录文件夹,并在那里找到sqlite文件。
解决方案2.1 - 启用itunes共享并通过itunes->查看sqlite文件设备 - >滚动到底部 - >点击你的应用 - >找到并下载sqlite文件。
要启用itunes分享,请按以下步骤操作 - http://stackoverflow.com/a/6029954/4549304
解决方案2.2 - 直接从xcode访问它,点击此链接