Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 保存图像以便以后发送到数据库的简单方法?_Ios_Database_Nsuserdefaults - Fatal编程技术网

Ios 保存图像以便以后发送到数据库的简单方法?

Ios 保存图像以便以后发送到数据库的简单方法?,ios,database,nsuserdefaults,Ios,Database,Nsuserdefaults,嘿嘿,, 我对objective C相当陌生,我不称自己为程序员,而是一个有创造力的程序员(一个能让事情顺利进行的人,我不太在乎我的解决方案是否优雅;)。我有以下问题需要解决: 我的应用程序拍摄照片并将其存储在应用程序文档目录中。它将这些图像发送到自定义数据库。到目前为止工作还不错 一些测试用户要求离线拍摄他们的照片,每当他们再次打开应用程序并且互联网连接可用时,它就会将图像发送到数据库。 现在,我找到了一种非常简单的方法来测试这里是否有可用的internet连接: 到目前为止效果很好。接下来

嘿嘿,, 我对objective C相当陌生,我不称自己为程序员,而是一个有创造力的程序员(一个能让事情顺利进行的人,我不太在乎我的解决方案是否优雅;)。我有以下问题需要解决: 我的应用程序拍摄照片并将其存储在应用程序文档目录中。它将这些图像发送到自定义数据库。到目前为止工作还不错

一些测试用户要求离线拍摄他们的照片,每当他们再次打开应用程序并且互联网连接可用时,它就会将图像发送到数据库。 现在,我找到了一种非常简单的方法来测试这里是否有可用的internet连接:

到目前为止效果很好。接下来,我想知道在没有互联网连接的情况下,如何最好地保存需要发送的图像。我已经在我的应用程序中使用了NSUserDefaults。使用NSUserDefaults保存需要发送的图像的名称/路径,并在应用程序打开时读取这些名称/路径,然后在此时发送所有图像,这是一个简单的解决方案吗


或者有人能推荐另一种简单的方法吗?欢迎您的建议

您可以将脱机图像保存在缓存目录中,并在internet连接可用时将其作为批处理图像上载。看看这篇文章


我认为默认是最好的方法。当internet连接可用时,请保留观察者,然后发送。以下是如何在NSUserDefault中保存图像的示例:

NSData *imageData = UIImageJPEGRepresentation(image, 1);

NSString *imagePath = [self documentsPathForFileName:[NSString stringWithFormat:@"image_%f.jpg", [NSDate timeIntervalSinceReferenceDate]]];

[imageData writeToFile:imagePath atomically:YES];

[[NSUserDefaults standardUserDefaults] setObject:imagePath forKey:kPLDefaultsAvatarUrl];
[[NSUserDefaults standardUserDefaults] synchronize];

注意:不应将图像数据直接保存到NSUserDefaults中

如果要保存2-3-5个图像,NSUserDefaults可能是最好的方法,否则,在您的文档文件夹中使用coredata或创建plist,当您有internet时,您可以从coredata或plist获取所有路径并上载图像

您可能可以使用NSUserDefaults。然而,我将采取一种非常实际和简单的方法:

  • 创建一个保存图像的目录,但不能立即上载
  • 当互联网可用时,上传这些
  • 上传完成后,只需删除图片即可
  • 每次启动应用程序/更改互联网连接时,请检查目录中是否还有图像

我最多有42个。。。所以我想学习如何使用核心数据是有意义的:)Thx可以工作,但我也有一些数据要和图像一起保存。这就是为什么我最初考虑的是nsuserdefaults