如果没有互联网,iOS商店文件,然后当互联网存在时发送

时间:2011-10-08 17:42:07

标签: iphone objective-c ios

我需要将数据发送到服务器。如果没有互联网连接,我想将这些文本数据存储到iOS文件系统的“文件”中。

我们会定期检查互联网连接,如果有,我们需要检查文件系统中是否有文件和数量,然后我需要从文件中提取数据并将其发送到服务器。然后删除该文件。

所以我不知道该怎么做:

1)将文本保存到本地设备文件系统中的文件

2)检查文件系统是否有文件

3)迭代文件并从每个文件中提取数据

4)数据到达服务器后删除文件

由于

2 个答案:

答案 0 :(得分:4)

您可以保存文件的唯一位置是应用程序的文档目录。每个申请都有一个单独的。

1)您使用NSFileManager保存文件 2)您还可以使用NSFileManager检查文档目录中的文件,
3)包括迭代
4)和删除。

您可以获得如下文档目录:

- (NSURL *)applicationDocumentsDirectory {
    return [[[NSFileManager defaultManager] 
      URLsForDirectory:NSDocumentDirectory 
      inDomains:NSUserDomainMask] lastObject];
}

您保存的文件如下:

NSData *file = ...;
NSURL *fileURL = [applicationDocumentsDirectory 
   URLByAppendingPathComponent:@"filename"];
[file writeToURL:fileURL atomically:YES];

你得到一个目录内容数组,用于迭代:

NSArray *files = [[NSFileManager defaultManager] 
   contentsOfDirectoryAtPath:path error:NULL];
for (id file in files) { 
   /* do what you have to do */ 
}

删除文件:

[[NSFileManager defaultManager] removeItemAtURL:fileURL];

答案 1 :(得分:1)

  1. 许多基础类(如NSString,NSData和NSDictionary)都有可以将其内容直接写入文件的方法。 (有类似的阅读方法。)iOS SDK也提供了大量文档。从File System Programming Guide开始。
  2. 2-4。看看NSFileManager,它可以让你完成所有这些事情。