objective-c - 与 iOS 存储和同步图像

标签 objective-c ios xamarin.ios synchronization

我有一个用 Monotouch 编写的应用程序它提供的一项功能是拍照,然后将其同步回 Sybase Sql Anywhere我们服务器上的数据库。该机制在 Windows 上运行良好我们的应用程序的版本,但是在iOS上我们遇到了有关将照片保存在Sybase Ultralite中的技术问题。 iPad 或 iPhone 上的数据库。简而言之,如果我们在 iPhone 上将分辨率设置为非常低,照片就会正确保存,但如果分辨率较高,照片就会失败。该问题与正在保存的图像数据的大小有关。在iPad上,照片一般都比用iPhone拍摄的照片大。 ,因此保存到数据库在 iPad 上失败的频率更高。比iPhone .

无论如何,这只是我们情况和实际情况的一些背景 Ultralite问题不是这个问题的重点。我在这里寻找的是提供此功能的替代解决方案( Objective-CMonotouch )。我立即考虑保存到本地数据库,然后将照片数据复制回服务器,因为我在数据库复制方面有很多经验。但也许有更好的方法来解决这个问题?

解决方案必须允许应用程序:

  • 保存照片以便在本地可用(即使在关闭应用程序或重新启动设备后)
  • 必须允许离线拍摄和保存照片,因为互联网连接并不总是可用。
  • 将图像数据同步回服务器数据库,或同步 URL,以便后台应用程序可以检索照片。显然,在同步时应用程序必须在线。

任何人都可以建议解决方案或 API,让我无需同步图像数据即可提供此功能吗?我正在考虑将图像保存到云端,然后仅同步可在后台用于检索照片的 URL。有什么建议吗?

最佳答案

根据您所写的内容,我可能建议您不要在 iOS 设备上正确保留图像。它们的内存非常有限,将批量 HR 图像保存在 RAM 中将导致内存警告和应用程序崩溃。您应该考虑使用 CoreData 来存储要保存到磁盘的图像的本地链接。我想您熟悉 UIImagePickerController 委托(delegate)回调,它允许您检索 UIImage 并将其保存到应用程序的文档目录中,因此我省略了它。我不确定“必须允许离线拍摄和保存照片”是什么意思,因为 UIImagePickerControllerAVFoundation 都不依赖于互联网连接。因此,为了离线保存图像,只需使用其中之一(如果您不需要在相机屏幕上显示任何自定义 UI,并且更容易开始使用,UIImagePickerController 更好) 。如果您需要同时同步多个图像,则应显示 UIProgressBar 并在队列中上传图像,而您发出的每个 REST 请求都是用于一次上传单个图像的多部分数据请求。这样您就不会遇到任何内存管理问题,您还可以对拍摄的图像使用 HR 质量,无需使用最低的质量。对于 HTTP 连接,您可能需要考虑使用 ASIHTTPRequest因为它很简单,使用起来非常简单,并且可以为您节省一些处理多部分请求的时间。

关于objective-c - 与 iOS 存储和同步图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11736051/

相关文章:

cordova - Xamarin 和 PhoneGap 可以一起使用吗?

ios - 我们需要在 iOS 中制作动态 View 高度的约束

iphone - Objective-C中如何获取外部IP

iOS隐藏BarsOnSwipe状态栏背景色

ios - 从所有(可见和不可见)UICollectionViewCell 获取框架

iphone - 每点击一次按钮,将文本框中的数字减一

ios - 如何检索 cellForRow(位于 :) when tableview isn't visible

ios - Xamarin UI 测试 : Calabash not linked

ios - 取消 SKDownload 的最佳方法

iphone - 将对象保持在 CoreAnimation 效果之上