从Web服务器更新支持文件

时间:2013-05-16 10:37:16

标签: ios objective-c cocoa-touch webserver updates

我正在编写一个iPhone应用程序,我在Supporting Files文件夹(在xcode的右侧面板中)本地下载了文件和照片,这些文件也在web服务器中下载,我想要的是如果应用程序检测到这些文件在Web服务器中更新,它将其替换为我使用的Supporting Files中的新内容

NSArray* pathArray = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory,NSUserDomainMask, YES);  
documentsDirectory = [pathArray objectAtIndex:0];
NSString* localFile = [documentsDirectory stringByAppendingPathComponent:@"test.txt"];
[data writeToFile:localFile options:NSDataWritingAtomic  error:&error];

代码运行良好,但问题是它替换了文件的内容 Library/Application Support文件夹,而不是Supporting Files,所以当我这样做时:

NSBundle *thisBundle = [NSBundle mainBundle];
NSString *TextURL = [thisBundle pathForResource:@"test" ofType:@"txt"];
NSURL *instructionsURL = [NSURL fileURLWithPath:TextURL];
NSString *TextString = [NSString stringWithContentsOfURL:instructionsURL];
mayText.text = TextString;  

显示旧内容,而不是更新的内容 每次更改应用程序支持文件时,如何更改我的代码以替换支持文件目录中的文件?这两个文件夹有什么区别?谢谢。

1 个答案:

答案 0 :(得分:0)

你做不到。设备上的iOS应用程序已签名,更改捆绑包的内容将破坏该签名。由于所有由Xcode管理并添加到目标的文件都会转到捆绑包中,因此不得更改它们。

而是将文件下载到沙箱目录(例如Documents)并在那里访问它。

另请注意,Supporting Files iin Xcode不是目录而是组。它将其内容分组到Xcode项目中,但不在文件系统级别的目录中组织文件。