Objective c 使用iOS存储和同步图像

Objective c 使用iOS存储和同步图像,objective-c,ios,xamarin.ios,synchronization,Objective C,Ios,Xamarin.ios,Synchronization,我有一个用Monotouch编写的应用程序,它提供的一个功能是拍摄照片,然后将照片同步回服务器上的Sybase Sql Anywhere数据库。这个机制在我们的应用程序的Windows版本上运行良好,但在iOS上,我们遇到了与将照片保存在iPad或iPhone上的Sybase Ultralite数据库中有关的技术问题。非常简单地说,如果我们在iPhone上将分辨率设置为非常低,则照片可以正确保存,但如果分辨率更高,则无法保存。该问题与正在保存的图像数据的大小有关。在iPad上,照片通常比用iPh

我有一个用
Monotouch
编写的应用程序,它提供的一个功能是拍摄照片,然后将照片同步回服务器上的
Sybase Sql Anywhere
数据库。这个机制在我们的应用程序的
Windows
版本上运行良好,但在
iOS
上,我们遇到了与将照片保存在iPad或iPhone上的
Sybase Ultralite
数据库中有关的技术问题。非常简单地说,如果我们在iPhone上将分辨率设置为非常低,则照片可以正确保存,但如果分辨率更高,则无法保存。该问题与正在保存的图像数据的大小有关。在
iPad
上,照片通常比用
iPhone
拍摄的照片大,因此在
iPad
上保存到数据库的失败率要高于
iPhone

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

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

  • 保存照片,使其在本地可用(即使在关闭应用程序或重新启动设备后)
  • 必须允许脱机拍摄和保存照片,因为internet连接并非始终可用
  • 要么将图像数据同步回服务器数据库,要么将URL同步回后台应用程序可以检索照片的位置。显然,在同步时,应用程序必须在线

有谁能推荐一些解决方案或API,使我能够在不同步图像数据的情况下提供此功能?我在考虑将图像保存到云端,然后只同步一个可以在后台用来检索照片的URL。有什么建议吗?

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

你好幼珍。谢谢你的回答。是的,您是对的,如果使用CoreData存储图像,然后再同步数据,那么拍摄照片时应用程序处于脱机状态这一事实就无关紧要了。我在考虑是否可以将数据保存在云中,这样数据就不必同步,但应用程序的脱机特性使得此选项不切实际。我以前使用过AsitpRequest,必须承认它非常容易使用。谢谢你的建议。