我有一个用Monotouch编写的应用程序,它提供的一个函数是拍摄照片,然后同步回服务器上的Sybase Sql Anywhere数据库。该机制在我们的应用程序的Windows版本上运行良好,但在iOS上,我们遇到了与将照片保存在iPad或iPhone上的Sybase Ultralite数据库中有关的技术问题。简单地说,如果我们在iPhone上将分辨率设置为非常低,照片就会被正确保存,但如果分辨率更高,则会失败。此问题与正在保存的图像数据的大小有关。在iPad上,照片通常比用iPhone拍摄的要大,所以在iPad上保存数据库的次数比iPhone多。
无论如何,这只是我们情况的一些背景,而实际的Ultralite问题并不是这个问题的焦点。我在这里寻找的是提供此功能的替代解决方案(Objective-C或Monotouch)。我立即考虑保存到本地数据库,然后将照片数据复制回服务器,因为我有很多数据库复制的经验。但也许有更好的方法来解决这个问题?
解决方案必须允许应用程序:
有人能提出解决方案或API,让我在不需要同步映像数据的情况下提供这个功能吗?我在想,也许可以将图像保存到云端,然后只同步一个可以在后台办公室检索照片的URL。有什么建议吗?
发布于 2012-07-31 08:52:26
根据您所写的,我可能建议您不能正确地将图像保存在iOS设备上。它们上的内存非常有限,将大量HR映像保存在RAM中将导致内存警告和应用程序崩溃。您应该考虑使用CoreData来存储到保存到磁盘中的映像的本地链接。我想,您熟悉UIImagePickerController委托回调,它允许您检索UIImage并将其保存到应用程序的文档目录中,因此我省略了它。我不知道你所说的“必须允许离线拍摄和保存照片”是什么意思,因为UIImagePickerController和AVFoundation都不依赖于互联网连接。因此,为了离线保存图像,只需使用其中的一种(如果您不需要在相机屏幕上显示任何自定义UI,并且使用起来要容易得多,UIImagePickerController更可取)。如果需要同时同步多个图像,则应该在队列中显示UIProgressBar和上传图像,而每个REST请求都是用于一次上传单个图像的多部分数据请求。这样您将不会有任何问题的内存管理,您也可以使用人力资源的质量被拍摄的图像,没有必要使用最低的一个。对于HTTP连接,您可能需要考虑使用ASIHTTPRequest,因为它很简单,使用起来非常简单,并且可能会节省您处理多部分请求的时间。
https://stackoverflow.com/questions/11736051
复制相似问题