平, 我对目标C很陌生,我不称自己为程序员,而是一个创造性的程序员(让事情有效的人,我不太关心我的解决方案的优雅;))。我有以下问题需要解决: 我的应用程序拍摄照片并将其存储在apps文档目录中。它将这些图像发送到自定义数据库。到目前为止工作正常。
有些测试用户要求离线捕获他们的照片,每当他们再次打开应用程序并且互联网连接可用时,它会将图像发送到数据库。 现在,我已经找到了一种非常简单的方法来测试这里是否有互联网连接: How to check for an active Internet connection on iOS or OSX?
到目前为止工作正常。接下来,我想知道如果没有可用的互联网连接,我如何最好地保存需要发送的图像。我已经在我的应用中使用了NSUserDefaults。保存需要使用NSUserDefaults发送的图像的名称/路径并在应用程序打开时读取它们并在那时发送所有图像是否是一个简单的解决方案?
或者有人可以推荐另一种简单方法吗?建议欢迎!
答案 0 :(得分:1)
如果您要保存2-3-5张图片,NSUserDefaults可能是最好的方法,否则在您的文档文件夹中使用coredata或创建plist,当您有互联网时,您可以从coredata或plist获取所有路径并上传图像
答案 1 :(得分:0)
您可以将离线图像保存在缓存目录中,并将其作为批量上传的Internet连接上传。看看这篇文章。
答案 2 :(得分:0)
我认为NSUserDefaults是最好的方式。您可以在互联网连接可用时保留观察者,然后发送。以下是如何在NSUserDefaults中保存图像的示例:
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
答案 3 :(得分:0)
您可以使用NSUserDefaults。但是,我会采取一种非常实用和简单的方法: