Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 有没有比我的实现更好的方法来检查更新的文件?_Objective C_Ios_Nsstring_Nsfilemanager - Fatal编程技术网

Objective c 有没有比我的实现更好的方法来检查更新的文件?

Objective c 有没有比我的实现更好的方法来检查更新的文件?,objective-c,ios,nsstring,nsfilemanager,Objective C,Ios,Nsstring,Nsfilemanager,我有一个应用程序可以下载每隔几个月更新一次的PDF文件,每次我下载某个PDF文件时,我也会下载一个包含一个字符的.txt文件。每次我在服务器上上传更新的PDF时,我也会将服务器上.txt文件中的字符数增加一个 当用户点击我的应用程序中的更新按钮时,我会将服务器上.txt文件中的字符串与本地.txt文件中的字符串进行比较 这是一种非常轻量级的检查新PDF是否可用的方法,但我想知道是否有更好的方法或更轻量级的方法来执行此操作,而不必为服务器上的每个PDF文件创建.txt文件 提前感谢您提供的任何帮助

我有一个应用程序可以下载每隔几个月更新一次的PDF文件,每次我下载某个PDF文件时,我也会下载一个包含一个字符的.txt文件。每次我在服务器上上传更新的PDF时,我也会将服务器上.txt文件中的字符数增加一个

当用户点击我的应用程序中的更新按钮时,我会将服务器上.txt文件中的字符串与本地.txt文件中的字符串进行比较

这是一种非常轻量级的检查新PDF是否可用的方法,但我想知道是否有更好的方法或更轻量级的方法来执行此操作,而不必为服务器上的每个PDF文件创建.txt文件

提前感谢您提供的任何帮助

这是我用来检查新PDF的代码:

NSString *documentDirectory = [(AppDelegate *)[[UIApplication sharedApplication] delegate] applicationDocumentsDirectory];

NSString *path = [documentDirectory stringByAppendingPathComponent:@"test.txt"];

NSString *server = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"foo.com/test.txt"] encoding:NSASCIIStringEncoding error:nil];

NSString *local = [NSString stringWithContentsOfFile:path encoding:NSASCIIStringEncoding error:nil];

if(![local isEqualToString:server])
{
   // I Download the new PDF and the new .txt file here;
   // simple NSURLConnection stuff, no need to elaborate
}

在我的脑海中,HTTP
head
方法可以用来只获取头,而不是数据。如果标题中的创建日期晚于上次下载数据的日期,则是获取新副本的时候了。这可以通过
NSURLRequest
NSURLConnection
完成

如果您的服务器不支持
HEAD
请求或其他阻止其使用的内容,则可以使用第二个TXT文件,其中包含版本/哈希/唯一标识符。而是下载它并与存储的值进行比较。如果更改了,请下载完整的PDF并将版本文本文件保存到磁盘以供以后参考


如果安全性是一个问题,并且您需要能够信任服务器,那么在任何情况下都可以使用HTTPS。

对于大约100兆字节的大型PDF,http头响应有多轻?另外,我正在使用Amazon的S3进行存储。HEAD请求速度非常快,因为响应没有实际数据,只有HTTP头。真正的问题是,如何将HEAD请求与存储的本地PDF文件上的某种元数据进行比较?@aviatorken89是否愿意共享?我在objc中寻找可以检查服务器上pdf文件修改日期的内容。@Jorgen,我使用了S3上可用的Etag属性。我只是存储了所有ETag的本地plist,然后在以后进行比较NSString*serverETag=[[(NSHTTPURLResponse*)响应allHeaderFields]objectForKey:@“Etag”]`